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

Durch Aktivieren der Blitzeinheit während einer AR-Sitzung lässt sich die Leistung verbessern. Sichtbarkeit.

Überprüfen, ob die aktuelle Kamerakonfiguration den Blitz unterstützt

Nicht alle Kamerakonfigurationen unterstützen das Aktivieren eines Blitzgeräts. Bevor Sie das Blitzlicht aktivieren oder Nutzern die Option zum Aktivieren des Blitzes anbieten, Stellen Sie sicher, dass das Blitzgerät für die aktive Kamera verfügbar ist. Konfiguration:

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

Blitz aktivieren

Aktivieren Sie die Flash-Einheit, indem Sie die AR-Sitzung mit 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 })
}

Blitzgerät deaktivieren

Deaktivieren Sie die Flash-Einheit, indem Sie die AR-Sitzung mit 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 })