Я видел два других подобных вопроса, но нет ответов, которые работают.
- Управление яркостью экрана в Android с помощью фоновой службы
- Разработка Android: изменение яркости экрана в службе
У меня есть фоновая служба, которая пытается выполнить какое-то пользовательское управление питанием и должна иметь возможность независимо контролировать блокировку экрана (либо принудительно блокируя его немедленно, либо предотвращая его блокировку), а также состояние дисплея (заставить его отключить , включено или затемнено). Я с трудом нахожу такие элементы управления. Мы разрабатываем для устройства, поэтому один из вариантов — изменить исходный код Android, но мы очень стараемся этого избежать.
Я могу использовать PowerManager.WakeLocks, чтобы пассивно предлагать яркость экрана (как и любой другой, так что это не гарантируется). Это нормально для предотвращения блокировки экрана и сохранения дисплея включенным.
Я видел вызов PowerManager.goToSleep() для принудительной блокировки экрана - это работает. Но это не заставляет дисплей выключаться (или что-то еще мешает этому).
Есть ли для этого API ОС Android? Я не могу найти их в онлайн-руководстве разработчика.