android - 在 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();
}
解决方案
在 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);
推荐阅读
- json - Webpack 4 - 未找到 JSON 模块
- javascript - 如何从其他节点传入函数标签
- python - 如何以公里为单位设置标记大小?
- java - Android打开失败:在数据/数据/包/文件中写入文件时EACCES(权限被拒绝)
- python - 聚合一个数据框并为每个类别计数
- r - 如何在本地数据框中的 selectInput() 中包含选项,而无需在 R 内存中预先重新加载它
- react-native - await 在 react-native 中给出 Refrence 错误
- java - java.lang.NoClassDefFoundError: org/wildfly/swarm/bootstrap/util/MavenArtifactDescriptor
- javascript - 加载三个js后切换到相机
- eclipse - Eclipse:突出显示的文本行在各个地方难以辨认