首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使FLAG_SHOW_WHEN_LOCKED与TYPE_KEYGUARD_DIALOG一起工作

如何使FLAG_SHOW_WHEN_LOCKED与TYPE_KEYGUARD_DIALOG一起工作
EN

Stack Overflow用户
提问于 2015-02-16 15:22:50
回答 2查看 1.3K关注 0票数 0

我一直在开发带有锁屏功能的Android,这样,一旦启动了我的LockScreen活动,默认的锁屏幕就应该暂时禁用,直到活动存在为止。

在搜索时,我发现使用FLAG_SHOW_WHEN_LOCKED很容易做到这一点。但是当我添加TYPE_KEYGUARD_DIALOG以禁用HOME按钮时,它就停止工作了。

再次搜索,我得到了一个使用代码的解决方案。

代码语言:javascript
复制
KeyguardManager.KeyguardLock k1;
KeyguardManager km = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
k1 = km.newKeyguardLock("IN");
k1.disableKeyguard();

但不推荐使用KeyguardManager.KeyguardLock类型。

有什么方法可以不使用KeyguardLock来完成这个工作呢?

我的密码-

代码语言:javascript
复制
public void onAttachedToWindow() {
    // TODO Auto-generated method stub
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG | WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().addFlags(
            WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                    | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                    | WindowManager.LayoutParams.FLAG_FULLSCREEN);
    super.onAttachedToWindow();
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-25 13:17:32

发现我的问题已经不相关了。不可能为Jellybean+手机创建锁定屏幕。所以暂时放弃了这个功能。

理由,

  1. KeyguardManager.KeyguardLock被否决了。
  2. 使用onAttachedToWindow()会导致Jellybean+出错。
票数 0
EN

Stack Overflow用户

发布于 2015-12-27 10:13:53

如果您仍然需要答案,请尝试FLAG_DISMISS_KEYGUARD,这是KeyguardLock的替代方案,如果不能工作,只需保留KeyguardLock并在@Override之前添加@SuppressWarnings("deprecation")。而且,您并不总是需要使用onAttachedToWindow(),您可以使用this.getWindow().addFlags(WindowManager.LayoutParams.*here flag that you need*),并且在setContentView()之前必须这样做。

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

https://stackoverflow.com/questions/28544677

复制
相关文章

相似问题

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