Auf Geräten mit Android 13 oder höher bietet das Android-Framework eine mehrstufige Steuerung der Taschenlampenintensität. In Android 12 und niedriger kann der Taschenlampenmodus nur ein- oder ausgeschaltet werden. Durch die Unterstützung der mehrstufigen Steuerung der Taschenlampenintensität können Geräte Anwendungsfälle wie die Steuerung der Helligkeit der Taschenlampe basierend auf den Lichtverhältnissen und das Senden von Hilfesignalen mithilfe eines Stroboskopeffekts ermöglichen, indem schnelle Lichtimpulse in einer Reihe gesendet werden. Ein weiterer Vorteil dieser Funktion ist, dass sie die Akkulaufzeit und die Leistung verbessern kann, da der Taschenlampenmodus nicht immer mit maximaler Intensität eingeschaltet werden muss, was zu thermischen Drosselungsbedingungen führen kann.
Öffentliche APIs
Apps können die Funktion zur Steuerung der Taschenlampenintensität über die folgenden öffentlichen APIs und Schlüssel für Kameraeigenschaften verwenden. Für diese APIs sind keine Kameraberechtigungen erforderlich, da nicht auf die Kamera zugegriffen wird.
CameraManager-APIs
public void turnOnTorchWithStrengthLevel (String cameraId, int torchStrength): Legt die Helligkeitsstufe der Taschenlampe fest, die im Taschenlampenmodus mit dem angegebenencameraIdWert verknüpft ist. Wenn der Taschenlampenmodus deaktiviert ist undtorchStrengthgrößer oder gleich1ist, wird die Taschenlampe mit der intorchStrengthangegebenen Intensitätsstufe eingeschaltet.public int getTorchStrengthLevel (String cameraId): Gibt die Helligkeitsstufe der mitcameraIdverknüpften Blitzeinheit zurück.
CameraCharacteristics-Schlüssel
FLASH_INFO_STRENGTH_MAXIMUM_LEVEL: Maximale Helligkeitsstufe. Die Kamera-HAL gibt diese Funktion an, indem sie einen Wert größer als1festlegt.FLASH_INFO_STRENGTH_DEFAULT_LEVEL: Standardmäßige Helligkeitsstufe der Taschenlampe.
Implementierung
Wenn Sie die Funktion zur Steuerung der Taschenlampenintensität auf Ihrem Gerät unterstützen möchten, verwenden Sie die folgenden AIDL-HAL-Schnittstellen der Kamera:
Speicherort: /camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl
Achten Sie darauf, dass Ihre HAL-Implementierung die folgenden Schlüssel für Kameraeigenschaften angibt, um die Funktion zur Steuerung der Taschenlampenhelligkeit zu unterstützen:
Eine Referenzimplementierung der Kamera-HAL, die die Steuerung der Taschenlampenintensität unterstützt,
finden Sie unter
EmulatedCameraDeviceHWLImpl.cpp.
Validierung
Führen Sie die folgenden VTS- und CTS-Tests aus, um Ihre Implementierung der Funktion zur Steuerung der Taschenlampenintensität zu validieren: