Para dispositivos com o Android 13 ou versões mais recentes, o framework do Android oferece um controle de vários níveis da intensidade da lanterna. No Android 12 e versões anteriores, o framework permite apenas ativar ou desativar o modo de lanterna. Com suporte ao controle de intensidade de 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ópio, enviando pulsos rápidos de luz em uma linha. Outro benefício desse recurso é que ele pode melhorar a duração da bateria e o desempenho, já que o modo lanterna nem sempre precisa ser ativado com a 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 de intensidade da lanterna usando as seguintes chaves de características de câmera e APIs públicas. 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 valor decameraId
fornecido no modo lanterna. Se o modo de tocha estiver desativado etorchStrength
for maior ou igual a1
, a tocha 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 aocameraId
.
Chaves de CameraCharacteristics
FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
: nível de brilho máximo. A HAL da câmera anuncia esse recurso definindo um valor maior que1
.FLASH_INFO_STRENGTH_DEFAULT_LEVEL
: nível de brilho da lanterna padrão.
Implementação
Para oferecer suporte ao recurso de controle de intensidade da lanterna no dispositivo, use as seguintes interfaces HAL de câmera AIDL:
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 conferir uma implementação de HAL da câmera de referência com suporte ao controle de intensidade da lanterna,
consulte
EmulatedCameraDeviceHWLImpl.cpp
.
Validação
Para validar a implementação do recurso de controle de intensidade da lanterna, execute os seguintes testes VTS e CTS: