В Android 13 появится возможность изменять яркость фонарика

Но скорее всего, ее получат только устройства с Android 13 из коробки.

Март 1, 2022 - 13:46
Март 1, 2022 - 13:56
 0  1351
В Android 13 появится возможность изменять яркость фонарика

На сегодняшний день наверно нельзя встретить ни одного устройства Android, которое не было бы оснащено светодиодной вспышкой, хоть это и не обязательно для сертификации. Она используется как для дополнительного освещения при использовании камеры, так и в качестве фонарика. В стандартных возможностях Android есть поддержка включения и выключения светодиодной вспышки, но он не может регулировать ее яркость. Однако в Android 13 ситуация изменится.

Как сообщает Esper Blog, среди прочих дополнений API, Android 13 вводит методы getTorchStrengthLevel и turnOnTorchWithStrengthLevel в класс CameraManager. Первый метод возвращает уровень яркости светодиодной вспышки, а второй метод устанавливает уровень яркости светодиодной вспышки от минимального значения "1" до максимального, определяемого аппаратным обеспечением. Ранее приложения могли включать и выключать фонарик только с помощью API setTorchMode, но благодаря новым API в Android 13 приложения смогут управлять яркостью фонарика.

Однако у этой функции есть одна оговорка. Не все устройства под управлением Android 13 будут поддерживать управление яркостью фонарика. Приложения могут определить, поддерживает ли устройство управление яркостью фонарика, используя CameraCharacteristics.FLASH_INFO_STRENGTH_MAXIMUM_LEVEL. Если возвращается значение больше 1, то оно является максимальным уровнем яркости, на который может быть установлена светодиодная вспышка данного устройства. Если возвращается 1, значит, устройство не поддерживает управление яркостью фонарика.

Причина, по которой поддержка этой функции будет ограничена, заключается в том, что она потребует обновления уровня абстракции аппаратного обеспечения камеры (Hardware Abstraction Layer - HAL). HAL — это программное обеспечение, определяющее интерфейс между ОС и базовым оборудованием. Чтобы ОС могла управлять аппаратным обеспечением светодиодной вспышки, необходим HAL, определяющий команды, которые может передать ОС для управления аппаратным обеспечением. В Android HAL поставщика камеры позволяет напрямую управлять вспышкой устройств камеры, эта функция была введена в HAL версии 2.4. HAL поставщика камеры перечисляет и открывает отдельные устройства камеры, а HAL устройства камеры используется для управления отдельными устройствами камеры.

Последние версии HAL поставщика камеры и устройства камеры в AOSP - 2.7 и 3.7 соответственно - не содержат упоминаний о регулировке яркости фонарика. Однако беглое изучение HAL устройства камеры версии 3.8 ([email protected]), включенной в Android 13 Developer Preview для Pixel 6 Pro, показывает, что для для двух новых API фреймворка была добавлена поддержка данного HAL. Таким образом, для поддержки новых API-интерфейсов Android 13 управления яркостью фонарика производителям устройств, вероятно, потребуется имплементировать ICameraDevice версии 3.8.

Однако из-за программы Google Requirements Freeze (GRF) возможно, что многие устройства, которые обновятся до Android 13, не будут поддерживать эту функцию. Это связано с тем, что в рамках программы GRF Google заморозил свои новые требования к HAL, чтобы гарантировать, что реализации вендоров, созданные на базе N-ой версии Android, будут сертифицированы вплоть до версии N+3. В результате производители устройств могут обновить свои устройства до Android 13, используя при этом реализацию вендора, разработанную для более ранней версии Android, которая не включает в себя новый HAL устройства камеры и поддержку управления яркостью светодиодных вспышек.

С другой стороны, вполне вероятно, что даже устройства с чипсетами, не участвующими в программе GRF, не будут поддерживать эту функцию при обновлении до Android 13. Что касается устройств с Android 13 из коробки, трудно сказать, будет ли в них реализована функция ICameraDevice 3.8 или нет. Все зависит от требований к программному обеспечению поставщика (Vendor Software Requirements - VSR) для Android 13, которые еще не дорабатываются. Учитывая характер программы GRF, вероятно, что эта функция будет поддерживаться только на устройствах, производители которых самостоятельно обновляют BSP (как, например, Google с устройствами Pixel), и на устройствах с Android 13 из коробки.

Источник: Esper Blog

Наиль Садыков Один из основателей проекта и главный редактор.