1、代碼直接斷定html
2、接收廣播ide
如今先說第一類方法(代碼直接斷定):spa
一、經過PowerManager的isScreenOn方法,代碼以下:.net
1rest 2code |
|
註釋已經寫的很明白了,如今大概說一下,ci
屏幕「亮」,表示有兩種狀態:a、未鎖屏 b、目前正處於解鎖狀態 。這兩種狀態屏幕都是亮的get
屏幕「暗」,表示目前屏幕是黑的 。
二、經過KeyguardManager的inKeyguardRestrictedInputMode方法,代碼以下:
1 2 |
|
註釋已經寫的很明白了,如今大概說一下,boolean flag = mKeyguardManager.inKeyguardRestrictedInputMode();
源碼的返回值的解釋是:true if in keyguard restricted input mode.
通過試驗,總結爲:
若是flag爲true,表示有兩種狀態:a、屏幕是黑的 b、目前正處於解鎖狀態 。
若是flag爲false,表示目前未鎖屏
註明:上面的兩種方法,也能夠經過反射機制來調用。
下面以第一個方法爲例說明一下。
1 2 3 4 5 6 7 8 |
|
如今介紹第二類方法(接收系統的廣播):
接收系統廣播事件,屏幕在三種狀態(開屏、鎖屏、解鎖)之間變換的時候,系統都會發送廣播,咱們只須要監聽這些廣播便可。
代碼以下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|