Sử dụng đơn vị flash của thiết bị trên SDK Android (Kotlin/Java)

Việc bật đèn flash của thiết bị trong phiên AR có thể giúp cải thiện khả năng hiển thị.

Kiểm tra để đảm bảo cấu hình máy ảnh hiện tại hỗ trợ đèn flash

Không phải tất cả các cấu hình máy ảnh đều hỗ trợ việc bật bộ đèn flash. Trước khi bật đèn flash hoặc cho phép người dùng bật đèn flash, hãy đảm bảo rằng thiết bị đèn flash có sẵn cho cấu hình máy ảnh đang hoạt động:

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

Bật thiết bị flash

Bật đơn vị flash bằng cách định cấu hình phiên thực tế tăng cường bằng 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 })
}

Tắt đèn flash

Tắt đơn vị flash bằng cách định cấu hình phiên thực tế tăng cường bằng 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 })