Per i dispositivi con Android 13 o versioni successive, il framework Android fornisce un controllo a più livelli per l'intensità della torcia. In Android 12 e versioni precedenti, il framework consente solo di attivare o disattivare la modalità torcia. Supportando il controllo della potenza della torcia a più livelli, i dispositivi possono attivare casi d'uso come il controllo della luminosità della torcia in base alle condizioni di illuminazione e l'invio di segnali di assistenza utilizzando un effetto strobo inviando rapidi impulsi di luce in sequenza. Un altro beneficio di questa funzionalità è che può migliorare le prestazioni e la durata della batteria poiché la modalità torcia non deve sempre essere attivata alla massima intensità, che può portare a condizioni di throttling termico.
API pubbliche
Le app possono utilizzare la funzionalità di controllo dell'intensità della torcia tramite le seguenti API pubbliche e chiavi delle caratteristiche della fotocamera. Per queste API non sono necessarie autorizzazioni di accesso alla fotocamera perché non viene eseguito l'accesso alla fotocamera.
API CameraManager
public void turnOnTorchWithStrengthLevel (String cameraId, int torchStrength)
: imposta il livello di luminosità della torcia associato al valorecameraId
specificato in modalità torcia. Se la modalità torcia è disattivata etorchStrength
è maggiore o uguale a1
, la torcia si accende con il livello di intensità specificato intorchStrength
.public int getTorchStrengthLevel (String cameraId)
: restituisce il livello di luminosità dell'unità flash associata acameraId
.
Chiavi CameraCharacteristics
FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
: livello di luminosità massimo. L'HAL della fotocamera pubblicizza questa funzionalità impostando un valore superiore a1
.FLASH_INFO_STRENGTH_DEFAULT_LEVEL
: livello di luminosità della torcia predefinito.
Implementazione
Per supportare la funzionalità di controllo dell'intensità della torcia sul tuo dispositivo, utilizza le seguenti interfacce HAL AIDL della fotocamera:
Località: /camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl
Assicurati che l'implementazione dell'HAL pubblicizzi le seguenti chiavi delle caratteristiche della fotocamera per supportare la funzionalità di controllo della luminosità della torcia:
Per un'implementazione di riferimento della fotocamera HAL che supporta il controllo dell'intensità della torcia, consulta EmulatedCameraDeviceHWLImpl.cpp
.
Convalida
Per convalidare l'implementazione della funzionalità di controllo dell'intensità della torcia, esegui i seguenti test VTS e CTS:
- VTS:
/camera/provider/aidl/vts/VtsAidlHalCameraProvider\_TargetTest.cpp
- CTS:
/platform/cts/tests/camera/src/android/hardware/camera2/cts/FlashlightTest.java