W przypadku urządzeń z Androidem 13 lub nowszym platforma Androida zapewnia wielopoziomową kontrolę nad siłą światła latarki. W Androidzie 12 i starszych wersjach platforma umożliwia tylko włączanie i wyłączanie trybu latarki. Obsługa wielopoziomowego sterowania siłą światła latarki pozwala urządzeniom na realizację takich zastosowań jak sterowanie jasnością latarki w zależności od warunków oświetleniowych czy 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 poprawić czas pracy baterii i 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łą światła 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 wtorchStrength.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. Warstwa 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ę komponentu HAL aparatu obsługującą sterowanie siłą światła znajdziesz EmulatedCameraDeviceHWLImpl.cpp.
Weryfikacja
Aby sprawdzić implementację funkcji sterowania siłą latarki, uruchom te testy VTS i CTS: