android中的兩把鎖 - walklock and keyguardlock 詳細分析 [複製鏈結]
walklock - 顧名思義 喚醒鎖 點亮螢幕用的
keyguardlock - 顧名思義 鍵盤鎖 解鎖鍵盤用的
詳細介紹:
1: walklock 喚醒鎖
- walklock真的能點亮螢幕嗎?
答案是肯定的。 可是有時候為什麼不點亮螢幕,這個就是引數設定的問題了。
powermanager.newwakelock(powermanager.full_wake_lock | powermanager.acquire_causes_wakeup, "gank");
powermanager.full_wake_lock 這個引數是手機點亮的程度,(什麼cpu,螢幕亮度,鍵盤燈)
powermanager.acquire_causes_wakeup 關鍵是這個引數的理解。
walklock點亮螢幕並非真的去點亮了螢幕,你可以理解為,它通過android元件(activity)去點亮了螢幕。
假如乙個通知想去點亮螢幕,問題來了,它能點亮嗎? 肯定不行。
不過擁有這個powermanager.acquire_causes_wakeu引數,你就可以點亮螢幕了。它使walklock不再依賴元件就可以點亮螢幕了。
- walklock如何獲得螢幕的狀態?
powermanager.isscreenon()方法;這個方法返回true: 螢幕是喚醒的 返回false:螢幕是休眠的
- walklock喚醒和休眠的方法?
walklock.aquire() 在螢幕休眠的狀態下喚醒螢幕
walklock.release() 在螢幕點亮的狀態下,使螢幕休眠。
walklock.release()這個方法有個需要注意的地方:
例如:walklocka物件先喚醒了螢幕再使螢幕休眠,ok沒問題
螢幕本身就是喚醒狀態,walklocka物件沒有喚醒過螢幕,walklocka物件如果嘗試使螢幕休眠。會產生乙個異常 unlock sreen。
2:keyguardlock 鍵盤鎖
- keyguardlock獲得當前螢幕是否解鎖?
keygroundmanager.inkeyguardrestrictedinputmode() 返回true表示鍵盤鎖住, 返回false表示鍵盤解鎖中
- keyguardlock給螢幕解鎖和上鎖?
keyguardlock.disablekeyguard()解鎖鍵盤
keyguardlock.reenablekeyguard()鎖鍵盤
keyguardlock沒有上面喚醒鎖的問題,就是無論你鍵盤是否由keyguardlocka解鎖,你呼叫keyguardlocka物件的reenablekeyguard()方法都不會有異常。
這兩把鎖一些概念性的理解,假如你認為你獲得了乙個鍵盤鎖物件,你就可以鎖螢幕了。這個就大錯特錯了。
你鎖不了其他程式開啟的螢幕(如果可以的話,乙個for迴圈一直鎖你螢幕,你哭都沒眼淚)
你可以控制自己的鎖,別想著別人的鎖。
最後總結下用法:
一般這兩把鎖都是配合使用的,你解鎖螢幕的時候肯定不希望螢幕漆黑一片。關閉鍵盤鎖的時候希望螢幕也同時休眠。
問題:1:我嘗試手動關閉螢幕,可是總繼續亮那麼一小會。
2:如果手機自動關閉螢幕的話,不會有這個問題。
主要**展示:
keyguardmanager keyguardmanager = (keyguardmanager) this.getsystemservice(context.keyguard_service); keyguardlock keyguardlock = keyguardmanager.newkeyguardlock("隨便寫點啥都行"); keyguardlock.disablekeyguard();
/** * 點亮螢幕 */ private void lightscreen()
補充說明:解鎖的話需要android.permission.disable_keyguard許可權。
Android 說說亮屏鎖和鍵盤鎖
android中的兩把鎖 walklock and keyguardlock 詳細分析 walklock 顧名思義 喚醒鎖 點亮螢幕用的 keyguardlock 顧名思義 鍵盤鎖 解鎖鍵盤用的 詳細介紹 1 walklock 喚醒鎖 walklock真的能點亮螢幕嗎?答案是肯定的。可是有時候為什麼...
Android保持螢幕常亮的方法
以前一直使用newwakelock方法 this.powermanager powermanager this.getsystemservice context.power service this.wakelock this.powermanager.newwakelock powermanage...
關於android的螢幕保持常亮
實現這一功能的方法有兩種,一種是在manifest.xml檔案裡面宣告,一種是在 裡面修改layoutparams的標誌位。具體如下 1 在manifest.xml檔案裡面用user permission宣告。如下 這種方法,在安裝apk時,系統會提示安裝人是否允許使用禁止休眠功能。uses per...