Android 应用 与 系统锁屏
有以下情景的操作
1. 應(yīng)用喚醒屏幕,并且直接解除鎖屏,顯示應(yīng)用
PowerManager的設(shè)置參數(shù)
PARTIAL_WAKE_LOCK:保持CPU 運轉(zhuǎn),屏幕和鍵盤燈有可能是關(guān)閉的。
SCREEN_DIM_WAKE_LOCK:保持CPU 運轉(zhuǎn),允許保持屏幕顯示但有可能是灰的,允許關(guān)閉鍵盤燈
SCREEN_BRIGHT_WAKE_LOCK:保持CPU 運轉(zhuǎn),允許保持屏幕高亮顯示,允許關(guān)閉鍵盤燈
FULL_WAKE_LOCK:保持CPU 運轉(zhuǎn),保持屏幕高亮顯示,鍵盤燈也保持亮度
ACQUIRE_CAUSES_WAKEUP:正常喚醒鎖定實際上不打開照明。相反,它們所造成的照明留在一旦接通(例如從用戶的活動)。該標(biāo)志將強制屏幕和/或鍵盤,立即打開,當(dāng)激活鎖定被收購。一個典型的用法是將通知用戶立即看到哪些是重要的
ON_AFTER_RELEASE:該標(biāo)志被設(shè)置時,用戶活動定時器將復(fù)位時激活鎖定被釋放時,使照明留在多一點的時間。這可用于減少閃爍如果正在喚醒鎖定條件之間循環(huán)。
KeyguardManager km= (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); KeyguardManager.KeyguardLock kl = km.newKeyguardLock("unLock"); //或者newKeyguardLock(""); //解鎖 Disable the keyguard from showing.kl.disableKeyguard(); //獲取電源管理器對象 PowerManager pm=(PowerManager) context.getSystemService(Context.POWER_SERVICE); //獲取PowerManager.WakeLock對象,后面的參數(shù)|表示同時傳入兩個值,最后的是LogCat里用的Tag PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK,"bright"); //點亮屏幕 wl.acquire(); //釋放 wl.release(); <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />但是有一個問題.disableKeyguard() 的作用就是關(guān)閉系統(tǒng)自帶的鎖屏服務(wù),所以手機被喚醒后,你再按電源鍵想要鎖屏 是鎖不了的,按下home鍵程序在后臺也鎖不了。除非退出應(yīng)用這樣。
所以在不需要的地方,調(diào)用reenableKeyguard()方法關(guān)閉服務(wù)(即恢復(fù)系統(tǒng)鎖屏服務(wù)時)
所以一般
在加上獲取 屏幕狀態(tài)
/*** 獲取screen狀態(tài)*/private void getScreenState() {PowerManager manager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);if (manager.isScreenOn()) {if (mScreenStateListener != null) {mScreenStateListener.onScreenOn();}} else {if (mScreenStateListener != null) {mScreenStateListener.onScreenOff();}}}2
. 監(jiān)聽廣播
獲取
總結(jié)
以上是生活随笔為你收集整理的Android 应用 与 系统锁屏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 足球大数据:致足球怀疑论者-The Co
- 下一篇: VR科技创新解决安全教育痛点!