En el caso de los dispositivos que ejecutan Android 13 o versiones posteriores, el framework de Android proporciona un control de varios niveles para la potencia de la linterna. En Android 12 y versiones anteriores, el framework solo permite activar o desactivar el modo linterna. Gracias a la compatibilidad con el control de potencia de la linterna de varios niveles, los dispositivos pueden habilitar casos de uso, como controlar el brillo de la linterna en función de las condiciones de iluminación y enviar señales de asistencia usando un efecto estroboscópico mediante el envío de pulsos rápidos de luz seguidos. Otro beneficio de esta función es que puede mejorar la duración de la batería y el rendimiento, ya que el modo linterna no siempre necesita estar activado con la potencia máxima, lo que puede generar condiciones de limitación térmica.
APIs públicas
Las apps pueden usar la función de control de potencia de la linterna a través de las siguientes APIs públicas y claves de características de la cámara. No se requieren permisos de la cámara para estas APIs porque no se accede a la cámara.
APIs de CameraManager
public void turnOnTorchWithStrengthLevel (String cameraId, int torchStrength): Establece el nivel de brillo de la linterna asociada con el valorcameraIddeterminado en el modo linterna. Si el modo linterna está desactivado ytorchStrengthes mayor o igual que1, la linterna se enciende con el nivel de potencia especificado entorchStrength.public int getTorchStrengthLevel (String cameraId): Muestra el nivel de brillo de la unidad flash asociada concameraId.
Claves de CameraCharacteristics
FLASH_INFO_STRENGTH_MAXIMUM_LEVEL: Nivel de brillo máximo. La HAL de la cámara anuncia esta función estableciendo un valor mayor que1.FLASH_INFO_STRENGTH_DEFAULT_LEVEL: Nivel de brillo predeterminado de la linterna.
Implementación
Para admitir la función de control de potencia de la linterna en tu dispositivo, usa las siguientes interfaces AIDL HAL de la cámara:
Ubicación: /camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl
Asegúrate de que tu implementación de HAL anuncie las siguientes claves de características de la cámara para admitir la función de control de brillo de la linterna:
Para obtener una implementación de HAL de la cámara de referencia que admita el control de potencia de la linterna,
consulta
EmulatedCameraDeviceHWLImpl.cpp.
Validación
Para validar tu implementación de la función de control de potencia de la linterna, ejecuta las siguientes pruebas de VTS y CTS: