欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android中系統(tǒng)自帶鎖WalkLock與KeyguardLock用法實例詳解

 更新時間:2016年01月18日 09:49:14   作者:nosxcy  
這篇文章主要介紹了Android中系統(tǒng)自帶鎖WalkLock與KeyguardLock用法,結(jié)合實例形式較為詳細的分析了WalkLock與KeyguardLock的功能、作用、使用方法與相關(guān)注意事項,需要的朋友可以參考下

本文實例講述了Android中系統(tǒng)自帶鎖WalkLock與KeyguardLock用法。分享給大家供大家參考,具體如下:

WalkLock - 顧名思義 喚醒鎖 點亮屏幕用的
KeyguardLock - 顧名思義 鍵盤鎖 解鎖鍵盤用的

詳細介紹:

1: WalkLock 喚醒鎖

- WalkLock真的能點亮屏幕嗎?

答案是肯定的。 可是有時候為什么不點亮屏幕,這個就是參數(shù)設(shè)置的問題了。

復(fù)制代碼 代碼如下:
PowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "Gank");

PowerManager.FULL_WAKE_LOCK 這個參數(shù)是手機點亮的程度,(什么Cpu,屏幕亮度,鍵盤燈)
PowerManager.ACQUIRE_CAUSES_WAKEUP 關(guān)鍵是這個參數(shù)的理解。
WalkLock點亮屏幕并非真的去點亮了屏幕,你可以理解為,它通過Android組件(Activity)去點亮了屏幕。

假如一個通知想去點亮屏幕,問題來了,它能點亮嗎? 肯定不行。

不過擁有這個PowerManager.ACQUIRE_CAUSES_WAKEU參數(shù),你就可以點亮屏幕了。它使WalkLock不再依賴組件就可以點亮屏幕了。

- WalkLock如何獲得屏幕的狀態(tài)?

PowerManager.isScreenOn()方法;這個方法返回true: 屏幕是喚醒的  返回false:屏幕是休眠的

- WalkLock喚醒和休眠的方法?

WalkLock.aquire() 在屏幕休眠的狀態(tài)下喚醒屏幕
WalkLock.release() 在屏幕點亮的狀態(tài)下,使屏幕休眠。

WalkLock.release()這個方法有個需要注意的地方:

例如:WalkLockA對象先喚醒了屏幕再使屏幕休眠,ok沒問題

屏幕本身就是喚醒狀態(tài),WalkLockA對象沒有喚醒過屏幕,WalkLockA對象如果嘗試使屏幕休眠。會產(chǎn)生一個異常 UnLock Sreen。

2:KeyguardLock 鍵盤鎖

- KeyguardLock獲得當(dāng)前屏幕是否解鎖?

KeygroundManager.inKeyguardRestrictedInputMode() 返回true表示鍵盤鎖住, 返回false表示鍵盤解鎖中

- KeyguardLock給屏幕解鎖和上鎖?

KeyguardLock.disableKeyguard()解鎖鍵盤
KeyguardLock.reenableKeyguard()鎖鍵盤

KeyguardLock沒有上面喚醒鎖的問題,就是無論你鍵盤是否由KeyguardLockA解鎖,你調(diào)用KeyguardLockA對象的reenableKeyguard()方法都不會有異常。

這兩把鎖一些概念性的理解,假如你認為你獲得了一個鍵盤鎖對象,你就可以鎖屏幕了。這個就大錯特錯了。

你鎖不了其他程序打開的屏幕(如果可以的話,一個for循環(huán)一直鎖你屏幕,你哭都沒眼淚)

你可以控制自己的鎖,別想著別人的鎖。

最后總結(jié)下用法:

一般這兩把鎖都是配合使用的,你解鎖屏幕的時候肯定不希望屏幕漆黑一片。關(guān)閉鍵盤鎖的時候希望屏幕也同時休眠。

問題:

1:我嘗試手動關(guān)閉屏幕,可是總繼續(xù)亮那么一小會。
2:如果手機自動關(guān)閉屏幕的話,不會有這個問題。

public void unlockScreen() {
  // 獲取PowerManager的實例
  PowerManager pm = (PowerManager) mContext
      .getSystemService(Context.POWER_SERVICE);
  // 得到一個WakeLock喚醒鎖
  mWakelock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
      | PowerManager.ACQUIRE_CAUSES_WAKEUP
      | PowerManager.ON_AFTER_RELEASE, "SimpleTimer");
  if (!mWakelock.isHeld()) {
    // 喚醒屏幕
    mWakelock.acquire();
  }
  // 獲得一個KeyguardManager的實例
  km = (KeyguardManager) mContext
      .getSystemService(Context.KEYGUARD_SERVICE);
  // 得到一個鍵盤鎖KeyguardLock
  mKeyguardLock = km.newKeyguardLock("SimpleTimer");
  if (km.inKeyguardRestrictedInputMode()) {
    // 解鎖鍵盤
    mKeyguardLock.disableKeyguard();
  }
}

注意,這里使用的mWakelock.isHeld())來判斷屏幕當(dāng)前是否是休眠狀態(tài),從Android 2.1 API Level7開始增加了一個判斷屏幕是否處于點亮狀態(tài)可以使用public boolean isScreenOn ()這個方法。

鎖屏幕的代碼是

public void lockScreen() {
  // release screen
  if (!km.inKeyguardRestrictedInputMode()) {
    // 鎖鍵盤
    mKeyguardLock.reenableKeyguard();
  }
  // 使屏幕休眠
  if (mWakelock.isHeld()) {
    mWakelock.release();
  }
}

希望本文所述對大家Android程序設(shè)計有所幫助。

相關(guān)文章

  • RecyclerView實現(xiàn)側(cè)滑和網(wǎng)絡(luò)斷點續(xù)傳

    RecyclerView實現(xiàn)側(cè)滑和網(wǎng)絡(luò)斷點續(xù)傳

    這篇文章主要為大家詳細介紹了RecyclerView實現(xiàn)側(cè)滑和網(wǎng)絡(luò)斷點續(xù)傳,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • android上一個可追蹤代碼具體到函數(shù)某行的日志類

    android上一個可追蹤代碼具體到函數(shù)某行的日志類

    追蹤代碼到函數(shù)具體某行,這樣的功能,是每一個程序員都希望會有的,因為它可以幫助我們追蹤到某行代碼的錯誤,接下來介紹下android上一個可追蹤代碼到函數(shù)具體某行的日志類,希望對開發(fā)者有所幫助
    2012-12-12
  • Android  TimerTask 的簡單應(yīng)用及注意事項

    Android TimerTask 的簡單應(yīng)用及注意事項

    這篇文章主要介紹了Android TimerTask 的簡單應(yīng)用及注意事項的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • android實現(xiàn)節(jié)點進度條效果

    android實現(xiàn)節(jié)點進度條效果

    這篇文章主要為大家詳細介紹了android實現(xiàn)節(jié)點進度條效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Android實現(xiàn)語音播放與錄音功能

    Android實現(xiàn)語音播放與錄音功能

    這篇文章主要為大家詳細介紹了Android實現(xiàn)語音播放與錄音功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android Koin2基本使用的那件事兒

    Android Koin2基本使用的那件事兒

    這篇文章主要給大家介紹了關(guān)于Android Koin2基本使用的那件事兒,文中通過示例代碼介紹的非常詳細,對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Android Compose自定義TextField實現(xiàn)自定義的輸入框

    Android Compose自定義TextField實現(xiàn)自定義的輸入框

    眾所周知Compose中默認的TextField和OutlineTextField樣式并不能滿足所有的使用場景,所以自定義TextField就成了必備技能。本文將自定義TextField實現(xiàn)自定義的輸入框,感興趣的可以了解一下
    2022-03-03
  • Android實現(xiàn)電池管理系統(tǒng)

    Android實現(xiàn)電池管理系統(tǒng)

    這篇文章主要為大家詳細介紹了Android實現(xiàn)電池管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Android開發(fā)中Intent.Action各種常見的作用匯總

    Android開發(fā)中Intent.Action各種常見的作用匯總

    今天小編就為大家分享一篇關(guān)于Android開發(fā)中Intent.Action各種常見的作用匯總,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Android 帶進度條的WebView 示例代碼

    Android 帶進度條的WebView 示例代碼

    本文主要介紹Android WebView,這里提供實例代碼,和效果圖供大家參考,希望能幫助有需要的小伙伴
    2016-07-07

最新評論