我想向用户请求关闭键盘锁。但是KeyguardManager.requestDismissKeyguard()
只能在api级别26以上使用。
如果设备已通过密码安全性锁定,则FLAG_DISMISS_KEYGUARD
不能像requestDismissKeyguard()
那样工作。
when {
// Android 8.0以上
Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 -> {
setShowWhenLocked(true)
setTurnScreenOn(true)
val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
keyguardManager.requestDismissKeyguard(this, null)
}
Build.VERSION.SDK_INT >= Build.VERSION_CODES.O -> {
window.addFlags(
FLAG_TURN_SCREEN_ON or FLAG_SHOW_WHEN_LOCKED
)
val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
keyguardManager.requestDismissKeyguard(this, null)
}
else -> {
window.addFlags(
FLAG_TURN_SCREEN_ON or FLAG_SHOW_WHEN_LOCKED or FLAG_DISMISS_KEYGUARD
)
}
}
如果有其他方法,我想知道。
谢谢。
最佳答案
我没有在API 25级下尝试过,但是我找到了这些答案,
KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
keyguard = km.newKeyguardLock("MyApp");
禁用并重新启用它:
public void unlockPhone() {
keyguard.disableKeyguard();
}
public void lockPhone() {
keyguard.reenableKeyguard();
}
当我得到以下答案时:
Dismissing Keyguard Screen in Android