Para dispositivos com Android 13 ou mais recente, o framework do Android oferece um controle multinível para a intensidade da luz da lanterna. No Android 12 e em versões anteriores, a estrutura permite apenas ativar ou desativar o modo de lanterna. Ao oferecer suporte ao controle de intensidade da lanterna em vários níveis, os dispositivos podem ativar casos de uso como controlar o brilho da lanterna com base nas condições de iluminação e enviar sinais de assistência usando um efeito estroboscópico com o envio de pulsos rápidos de luz em sequência. Outro benefício desse recurso é que ele pode melhorar a duração da bateria e o desempenho, já que o modo de lanterna não precisa estar sempre ligado na intensidade máxima, o que pode levar a condições de limitação térmica.
APIs públicas
Os apps podem usar o recurso de controle da intensidade da lanterna com as seguintes APIs públicas e chaves de características da câmera. Nenhuma permissão de câmera é necessária para essas APIs porque a câmera não é acessada.
APIs CameraManager
public void turnOnTorchWithStrengthLevel (String cameraId, int torchStrength)
: define o nível de brilho da lanterna associada ao valorcameraId
no modo de iluminação. Se o modo de iluminação estiver desativado etorchStrength
for maior ou igual a1
, a iluminação será ativada com o nível de intensidade especificado emtorchStrength
.public int getTorchStrengthLevel (String cameraId)
: retorna o nível de brilho da unidade de flash associada acameraId
.
Chaves CameraCharacteristics
FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
: Nível máximo de brilho. A HAL da câmera anuncia esse recurso definindo um valor maior que1
.FLASH_INFO_STRENGTH_DEFAULT_LEVEL
: Nível de brilho padrão da lanterna.
Implementação
Para oferecer suporte ao recurso de controle da intensidade da lanterna no seu dispositivo, use as seguintes interfaces AIDL HAL da câmera:
Local: /camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl
Verifique se a implementação da HAL anuncia as seguintes chaves de características da câmera para oferecer suporte ao recurso de controle de brilho da lanterna:
Para uma implementação de HAL da câmera de referência que oferece suporte ao controle da intensidade da luz da lanterna, consulte
EmulatedCameraDeviceHWLImpl.cpp
.
Validação
Para validar a implementação do recurso de controle da intensidade da lanterna, execute os seguintes testes do VTS e do CTS: