Для устройств под управлением Android 13 и выше платформа Android предоставляет многоуровневое управление мощностью фонарика. В Android 12 и более ранних версиях платформа позволяет только включать или выключать режим фонарика. Поддержка многоуровневого управления мощностью фонарика позволяет использовать такие функции, как регулировка яркости фонарика в зависимости от условий освещения и отправка сигналов о помощи с помощью стробоскопического эффекта путем отправки быстрых импульсов света подряд. Еще одно преимущество этой функции заключается в улучшении времени автономной работы и производительности, поскольку режим фонарика не всегда нужно включать на максимальную мощность, что может привести к перегреву и снижению производительности.
Общедоступные API
Приложения могут использовать функцию управления мощностью фонарика через следующие общедоступные API и ключи характеристик камеры. Для этих API не требуются разрешения на доступ к камере, поскольку доступ к камере не осуществляется.
API CameraManager
-
public void turnOnTorchWithStrengthLevel (String cameraId, int torchStrength): Устанавливает уровень яркости фонарика, связанного с заданным значениемcameraId, в режиме фонарика. Если режим фонарика выключен иtorchStrengthбольше или равно1, фонарик включается с уровнем яркости, указанным вtorchStrength. -
public int getTorchStrengthLevel (String cameraId): Возвращает уровень яркости вспышки, связанной сcameraId.
Ключи характеристик камеры
-
FLASH_INFO_STRENGTH_MAXIMUM_LEVEL: Максимальный уровень яркости. HAL камеры рекламирует эту функцию, устанавливая значение больше1. -
FLASH_INFO_STRENGTH_DEFAULT_LEVEL: Уровень яркости фонарика по умолчанию.
Выполнение
Для поддержки функции регулировки яркости фонарика на вашем устройстве используйте следующие интерфейсы AIDL HAL для камер:
Расположение: /camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl
Убедитесь, что ваша реализация HAL передает следующие ключи характеристик камеры для поддержки функции управления яркостью фонарика:
Пример реализации Camera HAL с поддержкой управления мощностью фонарика см. в файле EmulatedCameraDeviceHWLImpl.cpp .
Валидация
Для проверки правильности реализации функции управления мощностью горелки выполните следующие тесты VTS и CTS: