Используйте флэш-накопитель устройства в 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 })