Auf Geräten mit Android 13 oder höher bietet das Android-Framework eine mehrstufige Steuerung der Taschenlampenleistung. Unter Android 12 und niedriger ermöglicht das Framework nur das Ein- und Ausschalten des Taschenlampenmodus. Durch die Unterstützung einer mehrstufigen Steuerung der Taschenlampenstärke können Geräte Anwendungsfälle wie die Steuerung der Helligkeit der Taschenlampe basierend auf den Lichtverhältnissen und das Senden von Hilfesignalen mit einem Stroboskopeffekt ermöglichen, indem schnelle Lichtimpulse hintereinander gesendet werden. Ein weiterer Vorteil dieser Funktion ist, dass sich die Akkulaufzeit und Leistung verbessern können, da der Taschenlampenmodus nicht immer mit maximaler Stärke aktiviert werden muss, was zu einer thermischen Drosselung führen kann.
Öffentliche APIs
Apps können die Funktion zur Steuerung der Fackelstärke über die folgenden öffentlichen APIs und Schlüssel für Kameraeigenschaften verwenden. Für diese APIs sind keine Kameraberechtigungen erforderlich, da kein Zugriff auf die Kamera erfolgt.
CameraManager APIs
public void turnOnTorchWithStrengthLevel (String cameraId, int torchStrength)
: Mit diesem Befehl wird die Helligkeit der Taschenlampe im Taschenlampenmodus festgelegt, die dem angegebenencameraId
-Wert zugeordnet ist. Wenn der Taschenlampenmodus deaktiviert ist undtorchStrength
größer oder gleich1
ist, wird die Taschenlampe mit der intorchStrength
angegebenen Stärke eingeschaltet.public int getTorchStrengthLevel (String cameraId)
: Gibt die Helligkeit des mitcameraId
verknüpften Blitzgeräts zurück.
Schlüssel für „CameraCharacteristics“
FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
: Maximale Helligkeit. Der Kamera-HAL bewirbt diese Funktion, indem er einen Wert größer als1
festlegt.FLASH_INFO_STRENGTH_DEFAULT_LEVEL
: Standardhelligkeit der Taschenlampe.
Implementierung
Verwenden Sie die folgenden AIDL HAL-Kameraschnittstellen für die Kamera, um die Funktion zur Steuerung der Taschenlampenstärke auf Ihrem Gerät zu unterstützen:
Standort: /camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl
Ihre HAL-Implementierung muss die folgenden Kameraeigenschaften angeben, um die Taschenlampenhelligkeitssteuerung zu unterstützen:
Eine Referenzimplementierung der Kamera-HAL, die die Steuerung der Taschenlampenleistung unterstützt, finden Sie unter EmulatedCameraDeviceHWLImpl.cpp
.
Zertifizierungsstufe
Führen Sie die folgenden VTS- und CTS-Tests aus, um die Implementierung der Funktion zur Steuerung der Taschenlampenleistung zu validieren:
- VTS:
/camera/provider/aidl/vts/VtsAidlHalCameraProvider\_TargetTest.cpp
- CTS:
/platform/cts/tests/camera/src/android/hardware/camera2/cts/FlashlightTest.java