Для устройств под управлением 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: