Я хочу отправить устройство в режим сна или выключить экран. Я исследовал и нашел эту тему: Отключить экран на Android
В принципе, это три способа сделать это, но я нашел проблемы для трех:
a) Выбор 1:
PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
manager.goToSleep(int amountOfTime);
Проблема: Это вызывает FC. Я прочитал, что мне нужны разрешения DEVICE_POWER
, но он не может быть предоставлен для обычных приложений.
b) Выбор 2:
PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Your Tag");
wl.acquire();
wl.release();
Проблема: Это не работает для меня. Я не знаю почему. Это не дает мне FC, но это безобидно.
c) Выбор 3:
WindowManager.LayoutParams params = getWindow().getAttributes();
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);
Проблема: Я могу заставить его работать, но когда вы пытаетесь включить устройство, он делает странные вещи, например, не нравится возвращаться, или если мои приложения находятся впереди, автоматически идет спать сразу после нажатия кнопки. Это больше похоже на подсказку или обходное решение, чем на обычное решение.
Может ли кто-нибудь сказать мне какой-либо хороший способ отправить устройство в режим сна или выключить экран, который может работать без проблем? Для меня звучит редко, что простая функциональность, подобная этой, не имеет хорошего способа ее использования (или, насколько это возможно, хорошо документирована)