שימוש ביחידת ה-Flash של המכשיר ב-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 })