Flash-Einheit des Geräts mit dem Android SDK (Kotlin/Java) verwenden

Wenn Sie den Blitz des Geräts während einer AR-Sitzung aktivieren, kann das die Sichtbarkeit verbessern.

Prüfen, ob die aktuelle Kamerakonfiguration den Blitz unterstützt

Nicht alle Kamerakonfigurationen unterstützen die Aktivierung eines Blitzes. Bevor Sie den Blitz aktivieren oder Nutzern die Möglichkeit dazu geben, prüfen Sie, ob der Blitz für die aktive Kamerakonfiguration verfügbar ist:

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;
}
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

Blitz aktivieren

Aktivieren Sie den Blitz, indem Sie die AR-Sitzung mit Config.FlashMode.TORCH konfigurieren:

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

Blitz deaktivieren

Deaktivieren Sie den Blitz, indem Sie die AR-Sitzung mit Config.FlashMode.OFF konfigurieren:

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