首页 > 解决方案 > 在 Android 21 及更高版本中禁用锁定屏幕

问题描述

我试图在关闭屏幕时禁用锁定屏幕,但一旦屏幕关闭,就会再次锁定。

我正在使用以下代码禁用锁定屏幕:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
} else {
    KeyguardManager km = (KeyguardManager) activity.getSystemService(KEYGUARD_SERVICE);
    kl = km.newKeyguardLock("name");
    kl.disableKeyguard();
}

并启用锁定屏幕:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
} else {
    KeyguardManager km = (KeyguardManager) activity.getSystemService(KEYGUARD_SERVICE);
    kl = km.newKeyguardLock("name");
    kl.reenableKeyguard();
}

标签: androidlockscreenkeyguard

解决方案


在 Activity 的 OnCreate 中试试这个。

 Window win = getWindow();
    win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
    win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

推荐阅读