2016-09-16 7 views
0

Я хочу отключить экран, когда пользователь нажимает кнопку. Я пытаюсь сделать это с помощью класса PowerManager, но я не получаю хороших результатов. Каков наилучший способ отключить экран в Android ?.Как я могу программно отключить экран в 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, но нет выключает экран.

Большое спасибо.

+0

Вы хотите отключить или заблокировать устройство? – Aspicas

+0

http://stackoverflow.com/a/30365638/2633909 проверить это – DKV

+0

Возможный дубликат [Android: как включать и выключать экран программно?] (Http://stackoverflow.com/questions/9561320/android-how- to-turn-screen-on-and-off-programatically) –

ответ

2

Вы можете отключить экран, отключив время выключения системного экрана.

Сначала достаньте система выключения время

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"/>