Разработка
Как повысить яркость экрана в Android-приложении без запроса разрешения
Я хотел сделать экран в своем приложении ярче, но во всех статьях говорилось, что для этого нужны разрешения Android. Неправда!
Я хотел сделать экран в своем приложении ярче, но во всех статьях говорилось, что для этого нужны разрешения Android. Неправда! Вот как это можно реализовать.
Повышение яркости экрана нужна мне для того, чтобы QR-коды имели наибольшие шансы на успешное сканирование (даже когда люди отклонили запрос на разрешение). Установив яркость на полную, вы получите максимальный контраст для читаемости QR-кода.
Возможно, мои знания не соответствуют действительности, но во всех статьях, которые я нашел, говорилось, что для увеличения яркости необходимо получить разрешение Android.
Я постоянно в ответах натыкался на android.permission.WRITE_SETTINGS, что имеет смысл, если вы хотите изменить яркость и для своей системы, но если вы хотите просто временно и программно настроить яркость для своей собственной Активити, этого лучше избегать.
Вот как это сделать:
window.attributes = window.attributes.also { it.screenBrightness = 1f }
Эта функция принимает float значение в диапазоне 0 — 1. При этом 1 означает максимальную яркость.
Окно берется из контекста Activity, так что вы можете сделать это в onCreate или в любом другом месте, где у вас есть контекст, связанный с Активити.
Яркость сброситься сама, когда ваша Активити перестанет быть видимой.
Вот официальная документация. И константа, если она вам нужна для BRIGHTNESS_OVERRIDE_FULL.
Это значение может быть использовано для переопределения предпочтительной яркости экрана. Значение меньше 0, установленное по умолчанию, означает использование предпочтительной яркости экрана. От 0 до 1 регулирует яркость от темного до полностью яркого.
Вот и все! Легко 🙂 .
Спасибо Эду Холлоуэю-Джорджу за эту статью — когда знаешь, то знаешь!