Utiliser le bloc flash de l'appareil avec le SDK Android (Kotlin/Java)

Activer le flash de l'appareil pendant une session de RA peut améliorer visibilité.

Vérifier que la configuration actuelle de l'appareil photo est compatible avec le flash

Toutes les configurations d'appareil photo ne prennent pas en charge l'activation d'un flash. Avant d'activer Flash ou de proposer aux utilisateurs la possibilité de l'activer, Vérifiez que le flash est disponible pour la caméra active configuration:

Java

boolean flashAvailable;
try {
  CameraManager cameraManager =
      (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);

  CameraCharacteristics characteristics =
      cameraManager.getCameraCharacteristics(session.getCameraConfig().getCameraId());
  flashAvailable = characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
} catch (Exception e) {
  flashAvailable = false;
}

Kotlin

val flashAvailable =
  runCatching {
      val cameraManager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager
      val characteristics = cameraManager.getCameraCharacteristics(session.cameraConfig.cameraId)
      characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)
    }
    .getOrNull() ?: false

Activer le flash

Activez le bloc Flash en configurant la session de RA avec Config.FlashMode.TORCH:

Java

if (flashAvailable) {
  Config config = session.getConfig();
  config.setFlashMode(Config.FlashMode.TORCH);
  session.configure(config);
}

Kotlin

if (flashAvailable) {
  session.configure(session.config.apply { flashMode = Config.FlashMode.TORCH })
}

Désactiver le flash

Désactivez l'unité Flash en configurant la session de RA avec Config.FlashMode.OFF:

Java

Config config = session.getConfig();
config.setFlashMode(Config.FlashMode.OFF);
session.configure(config);

Kotlin

session.configure(session.config.apply { flashMode = Config.FlashMode.OFF })