首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当SCREEN_ON的接收者被触发时,如何关闭键盘守护并向用户显示活动?

当SCREEN_ON的接收者被触发时,如何关闭键盘守护并向用户显示活动?
EN

Stack Overflow用户
提问于 2010-11-21 02:01:30
回答 3查看 26.7K关注 0票数 8

当广播接收器被screen_on激活时,我如何禁用键盘守卫,以便当它发生时,用户可以看到我在它后面启动的活动?(活动已经在运行...)

我已经尝试了以下代码从广播接收器触发屏幕关闭...

代码语言:javascript
代码运行次数:0
运行
复制
KeyguardManager  myKeyGuard = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
myLock = myKeyGuard.newKeyguardLock();
myLock.disableKeyguard();

然而,它似乎并没有像现在这样工作。当我打开屏幕时,我仍然必须手动解锁手机上的键盘守卫,才能显示其背后的活动。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-23 22:12:09

我想我知道我做错了什么。在使用disable_keyguard权限时,这似乎只是我的清单中的一个标签错误。我更正了清单之后,它现在工作正常了。

票数 1
EN

Stack Overflow用户

发布于 2011-02-13 14:24:21

我建议使用窗口标志dismiss_keyguard或show_when_locked,如果你有一个窗口需要出现在锁屏的顶部,就在唤醒时。

http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SHOW_WHEN_LOCKED

如何使用它如下所示(在设置布局之前在onCreate中调用)

代码语言:javascript
代码运行次数:0
运行
复制
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
票数 5
EN

Stack Overflow用户

发布于 2014-03-28 08:31:33

我没有看到Keyguard解决方案起作用(它已经被弃用了)。对我来说起作用的是抓取一个我从不释放的永久PARTIAL_WAKE_LOCK。这可以防止设备真正进入睡眠状态,从而避免每次激活锁屏。

然后,每次屏幕关闭时,我都会监听通知并唤醒设备。它可以在我测试过的所有设备上运行。

我意识到这将很快耗尽设备的电池,所以,你必须非常谨慎地使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4234156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档