这个问题到目前为止还没有答案??? 在我的应用程序中,我使用下面的代码禁用了键盘锁(即,删除锁屏),它可以正常工作,直到我点击通知栏中的任何通知。如果我点击通知,则会自动重新启用锁定屏幕。任何帮助表示赞赏。
private void remove_lockscreen() {
final CheckBoxPreference lock = (CheckBoxPreference) findPreference("remove_lockscreen");
KeyguardManager km = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
KeyguardLock kl = km.newKeyguardLock("keyguard_lock");
if (lock.isChecked()) {
prefEdit("remove_lockscreen", 1);
Toast.makeText(getBaseContext(), "Lockscreen will not be shown", Toast.LENGTH_SHORT).show();
kl.disableKeyguard();
}
else if (!lock.isChecked()) {
prefEdit("remove_lockscreen", 0);
Toast.makeText(getBaseContext(), "Lockscreen will be shown", Toast.LENGTH_SHORT).show();
kl.reenableKeyguard();
android.os.Process.killProcess(android.os.Process.myPid());
}
}
我使用了这段代码 Disabled Keyguard Lock re-enables itself after clicking on a notification 但从来没有工作!! ?? 任何帮助
答案 0 :(得分:1)
KeyguardLock API已从Android API级别13弃用:http://developer.android.com/reference/android/app/KeyguardManager.KeyguardLock.html
您正在Note 4设备上尝试此操作,该设备的Android API级别大于13.因此,它现在可以正常工作。
试一下第1期:
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
this.getWindow().setType(WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
this.getWindow().setType(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
问题2:点击通知后重新启用锁定 - 这是因为点击通知时会启动新应用并将您的应用发送到后台。因此,它失去了对其禁用的锁定的控制,并且系统重新启用了锁定。你在你的应用程序中调用finish()吗?