Menggunakan unit flash perangkat di Android SDK (Kotlin/Java)

Mengaktifkan unit flash perangkat selama sesi AR dapat membantu meningkatkan visibilitas.

Pastikan konfigurasi kamera saat ini mendukung flash

Tidak semua konfigurasi kamera mendukung pengaktifan unit flash. Sebelum mengaktifkan flash atau menawarkan opsi kepada pengguna untuk mengaktifkan flash, pastikan unit flash tersedia untuk konfigurasi kamera aktif:

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

Mengaktifkan unit flash

Aktifkan unit flash dengan mengonfigurasi sesi AR dengan 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 })
}

Menonaktifkan unit flash

Nonaktifkan unit flash dengan mengonfigurasi sesi AR dengan 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 })