2016-09-16 342 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-以編程方式打開和關閉屏幕) –

回答

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"/> 
相關問題