استفاده از واحد فلش دستگاه در Android SDK (Kotlin/Java)

فعال کردن واحد فلاش دستگاه در طول جلسه AR می تواند به بهبود دید کمک کند.

بررسی کنید که پیکربندی فعلی دوربین از فلاش پشتیبانی کند

همه پیکربندی‌های دوربین از فعال کردن واحد فلاش پشتیبانی نمی‌کنند. قبل از فعال کردن فلاش یا ارائه گزینه فعال کردن فلاش به کاربران، مطمئن شوید که واحد فلاش برای پیکربندی دوربین فعال موجود است:

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 فعال کنید:

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 ، واحد فلاش را غیرفعال کنید:

Config config = session.getConfig();
config.setFlashMode(Config.FlashMode.OFF);
session.configure(config);
session.configure(session.config.apply { flashMode = Config.FlashMode.OFF })