ใช้หน่วยแฟลชของอุปกรณ์ใน Android SDK (Kotlin/Java)

การเปิดใช้แฟลชของอุปกรณ์ระหว่างเซสชัน AR จะช่วยปรับปรุงการมองเห็นได้

ตรวจสอบว่าการกำหนดค่ากล้องปัจจุบันรองรับแฟลช

การกำหนดค่ากล้องบางรายการไม่รองรับการเปิดใช้แฟลช ก่อนเปิดใช้แฟลชหรือเสนอตัวเลือกให้ผู้ใช้เปิดใช้แฟลช ให้ตรวจสอบว่าหน่วยแฟลชพร้อมใช้งานสำหรับการกำหนดค่ากล้องที่ใช้งานอยู่ โดยทำดังนี้

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

เปิดใช้งานหน่วยแฟลช

เปิดใช้หน่วยแฟลชโดยกำหนดค่าเซสชัน AR ด้วย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 })
}

ปิดใช้แฟลช

ปิดใช้หน่วยแฟลชโดยกำหนดค่าเซสชัน AR ด้วย 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 })