2014-01-14 185 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... 
    } 
}