W przypadku urządzeń z Androidem 13 lub nowszym platforma Android zapewnia wielopoziomową kontrolę nad jasnością latarki. W Androidzie 12 i starszych wersjach platforma umożliwia tylko włączanie i wyłączanie trybu latarki. Dzięki obsłudze wielopoziomowego sterowania siłą latarki urządzenia mogą obsługiwać przypadki użycia, takie jak sterowanie jasnością latarki na podstawie warunków oświetleniowych i wysyłanie sygnałów pomocy za pomocą efektu stroboskopowego przez wysyłanie szybkich impulsów świetlnych w rzędzie. Kolejną zaletą tej funkcji jest to, że może ona wydłużyć czas pracy baterii i poprawić wydajność, ponieważ tryb latarki nie musi być zawsze włączony z maksymalną mocą, co może prowadzić do ograniczenia wydajności z powodu przegrzania.
Publiczne interfejsy API
Aplikacje mogą korzystać z funkcji sterowania siłą latarki za pomocą tych publicznych interfejsów API i kluczy charakterystyki aparatu. Te interfejsy API nie wymagają uprawnień dostępu do aparatu, ponieważ nie uzyskują do niego dostępu.
Interfejsy CameraManager API
public void turnOnTorchWithStrengthLevel (String cameraId, int torchStrength)
: ustawia poziom jasności 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 parametrzetorchStrength
.public int getTorchStrengthLevel (String cameraId)
: Zwraca poziom jasności lampy błyskowej powiązanej zcameraId
.
Klucze CameraCharacteristics
FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
: maksymalny poziom jasności. Interfejs 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 siłą światła latarki na urządzeniu, użyj tych interfejsów AIDL HAL aparatu:
Lokalizacja: /camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl
Aby obsługiwać funkcję sterowania jasnością latarki, upewnij się, że implementacja HAL reklamuje te klucze charakterystyki aparatu:
Przykładową implementację HAL aparatu obsługującą sterowanie siłą światła znajdziesz EmulatedCameraDeviceHWLImpl.cpp
.
Weryfikacja
Aby sprawdzić implementację funkcji sterowania siłą światła, uruchom te testy VTS i CTS: