Pour les appareils équipés d'Android 13 ou version ultérieure, fournit un contrôle à plusieurs niveaux de la force de la lampe de poche. Dans Android 12 et versions antérieures, le framework ne permet d'activer ou de désactiver le mode lampe de poche. En favorisant la puissance de la lampe de poche à plusieurs niveaux les appareils peuvent permettre des cas d'utilisation, comme contrôler la luminosité du comme la lampe de poche en fonction des conditions d'éclairage et qui envoie des signaux pour obtenir de l'aide à l'aide d'un effet stroboscopique en envoyant des impulsions lumineuses rapides à la suite. Autre L'avantage de cette fonctionnalité est qu'elle peut améliorer l'autonomie et les performances de la batterie 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 API et clés associées aux caractéristiques de l'appareil photo. 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 à une ValeurcameraId
en mode lampe de poche. Si le mode lampe de poche est désactivé ettorchStrength
est supérieure ou égale à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. L'HAL de la caméra 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 éléments suivants : Interfaces HAL AIDL de la caméra:
Emplacement : /camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl
Assurez-vous que votre implémentation HAL annonce les caractéristiques d'appareil photo suivantes pour prendre en charge la fonctionnalité de contrôle de la luminosité de la lampe de poche:
Pour obtenir une implémentation de référence HAL d'appareil photo compatible avec le contrôle de l'intensité de la lampe de poche,
voir
EmulatedCameraDeviceHWLImpl.cpp
Validation
Pour valider votre implémentation de la fonctionnalité de contrôle de l'intensité de la lampe de poche, exécutez la 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