当广播接收器被screen_on激活时,我如何禁用键盘守卫,以便当它发生时,用户可以看到我在它后面启动的活动?(活动已经在运行...)
我已经尝试了以下代码从广播接收器触发屏幕关闭...
KeyguardManager myKeyGuard = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
myLock = myKeyGuard.newKeyguardLock();
myLock.disableKeyguard();
然而,它似乎并没有像现在这样工作。当我打开屏幕时,我仍然必须手动解锁手机上的键盘守卫,才能显示其背后的活动。
发布于 2010-11-23 14:12:09
我想我知道我做错了什么。在使用disable_keyguard权限时,这似乎只是我的清单中的一个标签错误。我更正了清单之后,它现在工作正常了。
发布于 2011-02-13 06:24:21
我建议使用窗口标志dismiss_keyguard或show_when_locked,如果你有一个窗口需要出现在锁屏的顶部,就在唤醒时。
如何使用它如下所示(在设置布局之前在onCreate中调用)
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
发布于 2014-03-28 00:31:33
我没有看到Keyguard解决方案起作用(它已经被弃用了)。对我来说起作用的是抓取一个我从不释放的永久PARTIAL_WAKE_LOCK
。这可以防止设备真正进入睡眠状态,从而避免每次激活锁屏。
然后,每次屏幕关闭时,我都会监听通知并唤醒设备。它可以在我测试过的所有设备上运行。
我意识到这将很快耗尽设备的电池,所以,你必须非常谨慎地使用它。
https://stackoverflow.com/questions/4234156
复制相似问题