如何检查屏幕是否已解锁(E.i.打开而不是锁定屏幕)?检查屏幕是否已解锁
PS。我不在寻找解锁事件,我知道可以使用AdminDeviceReceiver进行检索,但我正在寻找一个可执行代码,它将返回一个布尔值,告诉我该屏幕是否已解锁。
如何检查屏幕是否已解锁(E.i.打开而不是锁定屏幕)?检查屏幕是否已解锁
PS。我不在寻找解锁事件,我知道可以使用AdminDeviceReceiver进行检索,但我正在寻找一个可执行代码,它将返回一个布尔值,告诉我该屏幕是否已解锁。
试试这个:Detecting when screen is locked
而且同样的答案:
KeyguardManager myKM = (KeyguardManager) сontext.getSystemService(Context.KEYGUARD_SERVICE);
if(myKM.inKeyguardRestrictedInputMode()) {
// it is locked
} else {
//it is not locked
}
KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
if(keyguardManager.inKeyguardRestrictedInputMode()) {
System.out.println("~~~SCREEN LOCKED~~~");
} else {
System.out.println("~~~SCREEN NOT LOCKED~~~");
}
使用电源管理
检查屏幕关闭状态在你的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...
}
}
屏幕开/关您可以使用屏幕开/关广播 – Saqib
是的,谢谢,但我需要知道,如果屏幕解锁 – Jakob
不知道,但你可以尝试捕捉设备的触摸屏事件,它你可以设备已解锁,因此已被使用 – Saqib