我希望之前没有问过这个问题,但我找不到解决问题的方法。我有一个小部件,也用于键盘。我想为我的小部件添加一个onClick处理程序。没有问题,当小部件在主屏幕上时,活动正常启动。 但在keyguard上启动了活动,但未显示,因为设备已被锁定。
我不想使用WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
和WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
等标记来解除密钥保护。我只想要一个小窗口显示,我被要求解锁设备,就像点击几个键盘保护小部件时一样,就像Android电子邮件应用程序一样。
还有另一面旗帜可以达到这个目的吗?或者我是否必须按照我的意图做某事,打电话打开活动?谢谢你的帮助。
答案 0 :(得分:0)
要在Android中启用或禁用锁定屏幕,我们需要使用getSystemService()获取keyBoard Manager的实例。语法为,
KeyguardManager keyguardManager =
(KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
用于锁定屏幕使用,
lock.reenableKeyguard();
并禁用锁定使用,
lock.disableKeyguard();
这只会隐藏锁定屏幕并显示是否有任何来电或任何此类事件发生,它将显示该屏幕。它不会显示锁定屏幕。
运行应用程序时,要禁用进入锁定状态,只需使用
setKeepScreenOn()
设置为true。或使用xml属性android:keepScreenOn="true"
在应用程序运行时阻止设备进入睡眠或锁定模式的另一种方法是将此api设置为true - setKeepScreenOn()
当然,我们需要同意android.permission.DISABLE_KEYGUARD