2014-01-14 155 views
1

如何檢查屏幕是否已解鎖(E.i.打開而不是鎖定屏幕)?檢查屏幕是否已解鎖

PS。我不在尋找解鎖事件,我知道可以使用AdminDeviceReceiver進行檢索,但我正在尋找一個可執行代碼,它將返回一個布爾值,告訴我該屏幕是否已解鎖。

+1

屏幕開/關您可以使用屏幕開/關廣播 – Saqib

+0

是的,謝謝,但我需要知道,如果屏幕解鎖 – Jakob

+0

不知道,但你可以嘗試捕捉設備的觸摸屏事件,它你可以設備已解鎖,因此已被使用 – Saqib

回答

3
KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); 
      if(keyguardManager.inKeyguardRestrictedInputMode()) { 
       System.out.println("~~~SCREEN LOCKED~~~"); 
      } else { 
       System.out.println("~~~SCREEN NOT LOCKED~~~"); 
      } 
1

使用電源管理

檢查屏幕關閉狀態在你的onPause方法
@Override 
protected void onPause() 
{ 
    super.onPause(); 

    // If the screen is off then the device has been locked 
    PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); 
    boolean isScreenOn = powerManager.isScreenOn(); 

    if (!isScreenOn) { 

     // The screen has been locked 
     // do stuff... 
    } 
}