Użyj jednostki flash urządzenia w pakiecie Android SDK (Kotlin/Java).

Włączenie lampy błyskowej urządzenia podczas sesji AR może poprawić widoczność.

Sprawdź, czy bieżąca konfiguracja aparatu obsługuje lampę błyskową.

Nie wszystkie konfiguracje kamery obsługują stosowanie lampy błyskowej. Zanim włączysz lampę błyskową lub umożliwisz użytkownikom włączenie lampy, upewnij się, że jest ona dostępna w przypadku aktywnej konfiguracji aparatu:

JavaKotlin
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

Włącz lampę błyskową.

Włącz jednostkę flash, konfigurując sesję AR za pomocą Config.FlashMode.TORCH:

JavaKotlin
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 })
}

Wyłączanie lampy błyskowej

Wyłącz lampę błyskową, konfigurując sesję AR za pomocą Config.FlashMode.OFF:

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