Android螢幕常亮防息屏
阿新 • • 發佈:2018-11-01
Android螢幕常亮防息屏
PowerManager
主要是用來控制電源狀態的. 通過使用該類提供的api可以控制電池的待機時間
儘可能的使用最低級別的WakeLocks鎖,並且確保使用完後釋放它
使用 WakeLock得加 許可權
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.DEVICE_POWER"/>
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.flag, "MyTag" );
// 螢幕將停留在設定的狀態,一般為亮、暗狀態
wl.acquire();
// 釋放掉正在執行的cpu或關閉螢幕。
wl.release();
PowerManager.flag cpu screen keyboard
PARTIAL_WAKE_LOCK on off off
SCREEN_DIM_WAKE_LOCK on dim off
SCREEN_BRIGHT_WAKE_LOCK on bright off
FULL_WAKE_LOCK on bright bright
除了PARTIAL_WAKE_LOCK 其他的在API17以上都被禁止用了
如果你持有PARTIAL_WAKE_LOCK鎖,不論任何定時器甚至是按下電源按鈕,cpu都將繼續執行,無法進入休眠狀態。除非你釋放掉它。
其他鎖的話,雖然cpu也在執行,但是當用戶按下電源按鈕時,裝置將立刻進入休眠狀態
2 WindowManager.LayoutParams中:
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
用於當前 Activity顯示給使用者 則螢幕常亮(不管系統設定幾秒息屏)但是 Activity 不顯示 則還是會息屏
3 可見的 View 呼叫 setKeepScreenOn() 方法來設定螢幕常亮
4 MediaPlayer的 setScreenOnWhilePlaying()
5 xml的根檢視中放置android:keepScreenOn =“true”