Na urządzeniach z Androidem 13 lub nowszym platforma Androida umożliwia wielopoziomowe sterowanie siłą latarki. W Androidzie 12 i starszych framework umożliwia tylko włączenie lub wyłączenie trybu latarki. Dzięki obsłudze regulacji poziomu jasności latarki na różnych poziomach urządzenia mogą umożliwiać takie zastosowania, jak sterowanie jasnością latarki na podstawie warunków oświetleniowych i wysyłanie sygnałów pomocniczych za pomocą efektu stroboskopowego, czyli wysyłając szybkie impulsy światła z rzędu. Kolejną zaletą tej funkcji jest to, że może ona wydłużyć czas pracy na baterii i zwiększyć wydajność, ponieważ tryb latarki nie musi być zawsze włączony z maksymalną mocą, co może prowadzić do ograniczenia wydajności cieplnej.
Publiczne interfejsy API
Aplikacje mogą korzystać z funkcji sterowania jasnością latarki za pomocą tych publicznych interfejsów API i kluczy charakterystyki aparatu. Te interfejsy API nie wymagają uprawnień do aparatu, ponieważ nie jest on używany.
Interfejsy API CameraManager
public void turnOnTorchWithStrengthLevel (String cameraId, int torchStrength)
: Ustawia jasność latarki powiązanej z daną wartościącameraId
w trybie latarki. Jeśli tryb latarki jest wyłączony, a wartośćtorchStrength
jest większa lub równa1
, latarka włącza się z poziomem jasności określonym w wartościtorchStrength
.public int getTorchStrengthLevel (String cameraId)
: Zwraca poziom jasności lampy błyskowej powiązanej z opcjącameraId
.
Klucze CameraCharacteristics
FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
:Maksymalny poziom jasności. HAL aparatu reklamuje tę funkcję, ustawiając wartość większą niż1
.FLASH_INFO_STRENGTH_DEFAULT_LEVEL
: Domyślny poziom jasności latarki.
Implementacja
Aby obsługiwać funkcję sterowania jasnością latarki na urządzeniu, użyj tych interfejsów AIDL HAL aparatu:
Lokalizacja: /camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl
Upewnij się, że implementacja HAL rozgłasza te klucze właściwości aparatu w celu obsługi funkcji regulacji jasności latarki:
Przykładową implementację komponentu HAL aparatu obsługującego kontrolę natężenia światła latarki znajdziesz w dokumentacji EmulatedCameraDeviceHWLImpl.cpp
.
Weryfikacja
Aby zweryfikować implementację funkcji regulacji jasności latarki, uruchom te testy VTS i CTS:
- VTS:
/camera/provider/aidl/vts/VtsAidlHalCameraProvider\_TargetTest.cpp
- CTS:
/platform/cts/tests/camera/src/android/hardware/camera2/cts/FlashlightTest.java