如何檢查屏幕是否已解鎖(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