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 kamera yang aktif konfigurasi:

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

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