استفاده از واحد فلش دستگاه در 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 })
،

فعال کردن واحد فلاش دستگاه در طول جلسه 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 })