2015-12-15 45 views
1

我想讓我的Android設備進入睡眠狀態(屏幕關閉),有人想法該怎麼做?Android要睡覺(待機)

  • 在過去,我用的是PowerManager功能goToSleep(time),但顯然這個功能已經不存在了,我不明白爲什麼。

  • 其他主題談論這些線路:

    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
        wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My wakelook"); 
        wakeLock.acquire(); 
    

但它只允許進入睡眠模式的設備,瞞着他去睡覺模式現在。

  • 我已經嘗試過其中包括減少屏幕的亮度的解決方案,但它不是,因爲該設備並沒有真正進入睡眠模式,真正解決問題。而且我不希望使用下面的代碼:

    android.provider.Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, timeoutInactivity); 
    

    ,因爲我不想觸摸屏幕顯示設置,它更是一個解決辦法比的解決方案。

PS:這是一個系統應用程序,所以我沒有任何權限限制。

+0

有一個在電源管理類goToSleep(時間)的方法。只要檢查一下就可以了。但是睡覺時應該斷開USB源。 –

+0

感謝您的回答。不幸的是,我正在使用API​​23,goToSleep(long)已被刪除。當我嘗試「pm.goToSleep(10);」時,android studio告訴我「無法解析方法goToSleep(long)」。 – Stochelo

+0

檢查[此問題](http://stackoverflow.com/q/28459287/1276636)。我認爲那裏的評論會有幫助。 – Sufian

回答

0
private PowerManager mPowerManager; 
private PowerManager.WakeLock mWakeLock; 

public void sleep(){ 
     mWakeLock = mPowerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "tag"); 
     mWakeLock.acquire(); 
} 

試試這個

+0

謝謝,但不幸的是,這並沒有使屏幕關閉。 – Stochelo