Включение вспышки устройства во время сеанса 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 })