Für Geräte mit Android 13 oder höher bietet das Android-Framework eine mehrstufige Steuerung der Taschenlampenstärke. In Android 12 und niedriger ermöglicht das Framework nur das Ein- oder Ausschalten des Taschenlampenmodus. Durch die Unterstützung der 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 Signalen zur Unterstützung mithilfe eines Stroboskopeffekts ermöglichen, indem schnelle Lichtimpulse hintereinander gesendet werden. Ein weiterer Vorteil dieser Funktion besteht darin, dass sie die Akkulaufzeit und -leistung verbessern kann, da der Taschenlampenmodus nicht immer mit maximaler Stärke eingeschaltet werden muss, was zu thermischer Drosselung führen kann.
Öffentliche APIs
Apps können die Funktion zur Steuerung der Taschenlampenstärke über die folgenden öffentlichen APIs und Kameracharakteristikschlüssel nutzen. Für diese APIs sind keine Kameraberechtigungen erforderlich, da kein Zugriff auf die Kamera erfolgt.
CameraManager
APIs
-
public void turnOnTorchWithStrengthLevel (String cameraId, int torchStrength)
: Legt die Helligkeitsstufe der Taschenlampe fest, die dem angegebenencameraId
Wert im Taschenlampenmodus zugeordnet ist. Wenn der Taschenlampenmodus ausgeschaltet ist undtorchStrength
größer oder gleich1
ist, schaltet sich die Taschenlampe mit der intorchStrength
angegebenen Stärkestufe ein. -
public int getTorchStrengthLevel (String cameraId)
: Gibt die Helligkeitsstufe der mitcameraId
verknüpften Blitzeinheit zurück.
CameraCharacteristics
Schlüssel
-
FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
: Maximale Helligkeitsstufe. Der Kamera-HAL kündigt diese Funktion an, indem er einen Wert größer als1
festlegt. -
FLASH_INFO_STRENGTH_DEFAULT_LEVEL
: Standardhelligkeitsstufe der Taschenlampe.
Implementierung
Um die Funktion zur Steuerung der Brennerstärke auf Ihrem Gerät zu unterstützen, verwenden Sie die folgenden Kamera-AIDL-HAL-Schnittstellen:
Speicherort: /camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl
Stellen Sie sicher, dass Ihre HAL-Implementierung die folgenden Tasten für Kameraeigenschaften ankündigt, um die Funktion zur Steuerung der Taschenlampenhelligkeit zu unterstützen:
Eine Referenz-Kamera-HAL-Implementierung zur Unterstützung der Taschenlampenstärkesteuerung finden Sie unter EmulatedCameraDeviceHWLImpl.cpp
.
Validierung
Führen Sie die folgenden VTS- und CTS-Tests aus, um Ihre Implementierung der Funktion zur Steuerung der Brennerstärke zu validieren:
- VTS:
/camera/provider/aidl/vts/VtsAidlHalCameraProvider\_TargetTest.cpp
- CTS:
/platform/cts/tests/camera/src/android/hardware/camera2/cts/FlashlightTest.java
Für Geräte mit Android 13 oder höher bietet das Android-Framework eine mehrstufige Steuerung der Taschenlampenstärke. In Android 12 und niedriger ermöglicht das Framework nur das Ein- oder Ausschalten des Taschenlampenmodus. Durch die Unterstützung der 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 Signalen zur Unterstützung mithilfe eines Stroboskopeffekts ermöglichen, indem schnelle Lichtimpulse hintereinander gesendet werden. Ein weiterer Vorteil dieser Funktion besteht darin, dass sie die Akkulaufzeit und -leistung verbessern kann, da der Taschenlampenmodus nicht immer mit maximaler Stärke eingeschaltet werden muss, was zu thermischer Drosselung führen kann.
Öffentliche APIs
Apps können die Funktion zur Steuerung der Taschenlampenstärke über die folgenden öffentlichen APIs und Kameracharakteristikschlüssel nutzen. Für diese APIs sind keine Kameraberechtigungen erforderlich, da kein Zugriff auf die Kamera erfolgt.
CameraManager
APIs
-
public void turnOnTorchWithStrengthLevel (String cameraId, int torchStrength)
: Legt die Helligkeitsstufe der Taschenlampe fest, die dem angegebenencameraId
Wert im Taschenlampenmodus zugeordnet ist. Wenn der Taschenlampenmodus ausgeschaltet ist undtorchStrength
größer oder gleich1
ist, schaltet sich die Taschenlampe mit der intorchStrength
angegebenen Stärkestufe ein. -
public int getTorchStrengthLevel (String cameraId)
: Gibt die Helligkeitsstufe der mitcameraId
verknüpften Blitzeinheit zurück.
CameraCharacteristics
Schlüssel
-
FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
: Maximale Helligkeitsstufe. Der Kamera-HAL kündigt diese Funktion an, indem er einen Wert größer als1
festlegt. -
FLASH_INFO_STRENGTH_DEFAULT_LEVEL
: Standardhelligkeitsstufe der Taschenlampe.
Implementierung
Um die Funktion zur Steuerung der Brennerstärke auf Ihrem Gerät zu unterstützen, verwenden Sie die folgenden Kamera-AIDL-HAL-Schnittstellen:
Speicherort: /camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl
Stellen Sie sicher, dass Ihre HAL-Implementierung die folgenden Tasten für Kameraeigenschaften ankündigt, um die Funktion zur Steuerung der Taschenlampenhelligkeit zu unterstützen:
Eine Referenz-Kamera-HAL-Implementierung zur Unterstützung der Taschenlampenstärkesteuerung finden Sie unter EmulatedCameraDeviceHWLImpl.cpp
.
Validierung
Führen Sie die folgenden VTS- und CTS-Tests aus, um Ihre Implementierung der Funktion zur Steuerung der Brennerstärke zu validieren:
- VTS:
/camera/provider/aidl/vts/VtsAidlHalCameraProvider\_TargetTest.cpp
- CTS:
/platform/cts/tests/camera/src/android/hardware/camera2/cts/FlashlightTest.java