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ącameraIdw trybie latarki. Jeśli tryb latarki jest wyłączony, a wartośćtorchStrengthjest 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: