Как я могу программно выключить экран в 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"/>
Другие вопросы по тегам