Я хочу отправить устройство в спящий режим или выключить экран.Я исследовал и нашел эту тему: Отключить экран на Android
В основном, есть три способа сделать это, но я нашел проблемы для трех:
а) Вариант 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();
Проблема: Этоне работает для меня.Я не знаю почему.Это не дает мне ФК, но это безобидно.
в) Выбор 3:
WindowManager.LayoutParams params = getWindow().getAttributes();
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);
Проблема: Я могу заставить его работать, но при попыткечтобы включить устройство, он делает странные вещи, например, не любит возвращаться, или, если мои приложения находятся впереди, автоматически переходит в спящий режим сразу после нажатия кнопки.Это больше похоже на совет или обходной путь, чем на обычное решение.
Может кто-нибудь сказать мне какой-нибудь хороший способ отправить устройство в спящий режим или выключить экран, который может работать без проблем?Мне кажется редким, что такая простая функциональность не имеет хорошего способа ее использования (или, по крайней мере, хорошо документированной)