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

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

Kiểm tra để chắc chắn rằng cấu hình máy ảnh hiện tại có 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 cung cấp cho người dùng tuỳ chọn bật đèn flash, đảm bảo có thiết bị flash tương thích với máy ảnh đang hoạt động cấu hình:

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 thiết bị 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 })