Как я могу программно выключить экран в Android?
Я хочу выключить экран, когда пользователь нажимает кнопку. Я пытаюсь сделать это с помощью класса PowerManager, но я не получаю хорошие результаты. Какой лучший способ выключить экран в Android?.
Я использую код ниже:
PowerManager pm = (PowerManager)this.getSystemService( Context.POWER_SERVICE); PowerManager.WakeLock wl = pm.newWakeLock( PowerManager.PARTIAL_WAKE_LOCK, ""); wl.acquire();
Но работает только этот код:
WindowManager.LayoutParams params = getWindow().getAttributes(); params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; params.screenBrightness = 0; getWindow().setAttributes(params);
Но этот код только устанавливает яркость на 0, но не выключает экран.
Большое спасибо.
1 ответ
Вы можете выключить экран, переопределив время выключения системного экрана.
Сначала получите время выключения системы
int defaultTurnOffTime = Settings.System.getInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, 60000);
затем включите время выключения
Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, 1000);
и когда экран выключен, установите время выключения по умолчанию
Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, defaultTurnOffTime);
добавить ниже разрешение
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>