Pour les appareils fonctionnant sous Android 13 ou version ultérieure, le framework Android fournit un contrôle à plusieurs niveaux de l'intensité de la lampe torche. Dans Android 12 et versions antérieures, le framework permet uniquement d'activer ou de désactiver le mode lampe torche. En prenant en charge le contrôle de l'intensité de la lampe torche sur plusieurs niveaux, les appareils peuvent activer des cas d'utilisation tels que le contrôle de la luminosité de la lampe de poche en fonction des conditions d'éclairage et l'envoi de signaux d'assistance à l'aide d'un effet stroboscopique en envoyant de rapides impulsions lumineuses consécutives. Un autre avantage de cette fonctionnalité est qu'elle peut améliorer l'autonomie et les performances de la batterie, car le mode lampe torche n'a pas toujours besoin d'être activé à la puissance maximale, ce qui peut entraîner des conditions de limitation thermique.
API publiques
Les applications peuvent utiliser la fonctionnalité de contrôle de l'intensité de la lampe torche via les API publiques et les clés de caractéristiques de l'appareil photo suivantes. Aucune autorisation d'accès à l'appareil photo n'est requise pour ces API, car l'appareil photo n'est pas utilisé.
API CameraManager
public void turnOnTorchWithStrengthLevel (String cameraId, int torchStrength)
: Définit le niveau de luminosité de la lampe torche associée à la valeurcameraId
donnée en mode lampe torche. Si le mode lampe torche est désactivé et quetorchStrength
est supérieur ou égal à1
, la lampe torche s'allume avec le niveau d'intensité spécifié danstorchStrength
.public int getTorchStrengthLevel (String cameraId)
: renvoie le niveau de luminosité du flash associé àcameraId
.
Clés CameraCharacteristics
FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
: niveau de luminosité maximal. La HAL de l'appareil photo annonce cette fonctionnalité en définissant une valeur supérieure à1
.FLASH_INFO_STRENGTH_DEFAULT_LEVEL
: niveau de luminosité par défaut de la lampe de poche.
Implémentation
Pour prendre en charge la fonctionnalité de contrôle de l'intensité de la lampe torche sur votre appareil, utilisez les interfaces AIDL HAL de l'appareil photo suivantes :
Emplacement : /camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl
Assurez-vous que votre implémentation HAL annonce les clés de caractéristiques de caméra suivantes pour prendre en charge la fonctionnalité de contrôle de la luminosité de la lampe torche :
Pour obtenir une implémentation de référence de la HAL de l'appareil photo prenant en charge le contrôle de l'intensité de la lampe torche, consultez EmulatedCameraDeviceHWLImpl.cpp
.
Validation
Pour valider l'implémentation de la fonctionnalité de contrôle de l'intensité de la lampe torche, exécutez les tests VTS et CTS suivants :