Pour les appareils équipés d'Android 13 ou version ultérieure, le framework Android fournit un contrôle à plusieurs niveaux de l'intensité de la lampe de poche. Sous Android 12 et versions antérieures, le framework ne permet que d'activer ou de désactiver le mode lampe de poche. En prenant en charge le contrôle de l'intensité de la lampe de poche à 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 des impulsions lumineuses rapides à la suite. Un autre avantage de cette fonctionnalité est qu'elle peut améliorer l'autonomie et les performances de la batterie, car le mode lampe de poche n'a pas toujours besoin d'être activé à la force 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 de poche 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 accessible.
API CameraManager
public void turnOnTorchWithStrengthLevel (String cameraId, int torchStrength)
: définit le niveau de luminosité de la lampe de poche associée à la valeurcameraId
donnée en mode lampe de poche. Si le mode lampe de poche est désactivé et quetorchStrength
est supérieur ou égal à1
, la lampe de poche 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. Le 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 de poche sur votre appareil, utilisez les interfaces HAL AIDL de la caméra 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 d'appareil photo suivantes pour permettre la fonctionnalité de contrôle de la luminosité de la lampe de poche:
Pour obtenir une implémentation de référence de la couche HAL de l'appareil photo compatible avec le contrôle de l'intensité de la lampe de poche, consultez EmulatedCameraDeviceHWLImpl.cpp
.
Validation
Pour valider l'implémentation de la fonctionnalité de contrôle de la force de la lampe de poche, exécutez les tests VTS et CTS suivants:
- VTS:
/camera/provider/aidl/vts/VtsAidlHalCameraProvider\_TargetTest.cpp
- CTS:
/platform/cts/tests/camera/src/android/hardware/camera2/cts/FlashlightTest.java