Habilitar la unidad de flash del dispositivo durante una sesión de RA puede ayudar a mejorar la visibilidad.
Cómo comprobar que la configuración actual de la cámara admita el flash
No todas las configuraciones de la cámara admiten la habilitación de una unidad de flash. Antes de habilitar Flash u ofrecer a los usuarios la opción de habilitarlo asegúrate de que la unidad de flash esté disponible para la cámara activa actual:
Java
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; }
Kotlin
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
Habilitar la unidad de flash
Para habilitar la unidad de flash, configura la sesión de RA con Config.FlashMode.TORCH
:
Java
if (flashAvailable) { Config config = session.getConfig(); config.setFlashMode(Config.FlashMode.TORCH); session.configure(config); }
Kotlin
if (flashAvailable) { session.configure(session.config.apply { flashMode = Config.FlashMode.TORCH }) }
Inhabilita la unidad de flash
Desactiva la unidad flash configurando la sesión de RA con
Config.FlashMode.OFF
:
Java
Config config = session.getConfig(); config.setFlashMode(Config.FlashMode.OFF); session.configure(config);
Kotlin
session.configure(session.config.apply { flashMode = Config.FlashMode.OFF })