首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当从后台打开活动时,XIaomi设备不会关闭锁定屏幕(警报事件)

当从后台打开活动时,XIaomi设备不会关闭锁定屏幕(警报事件)
EN

Stack Overflow用户
提问于 2018-09-26 13:26:44
回答 2查看 1.4K关注 0票数 3

我有一个应用程序可以在某个事件上打开一个活动。

就像报警申请一样。我使用以下标志:

代码语言:javascript
复制
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
        | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
        | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
        | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
        | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
    );

应用程序为此创建一个唤醒锁。

在大多数设备上,它工作得很好,但在小米Redme 2(Android 6)上就不行了。

当应用程序启动该活动时,屏幕将被打开并显示锁定屏幕。我的活动没有显示。

输入密码后,我看到我的活动。

然后,我更改了包名,并且在没有锁定屏幕的情况下成功地显示了活动。

小米似乎出于某种原因把我们的原始应用列入了黑名单。

我想知道是否有人遇到过这种行为并有了解决方案?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-01 11:40:03

这是小米/MIUI的一个具体问题。你需要授予一个应用程序的特殊权限,以便在警报期间解锁屏幕。

转到系统设置>权限>高级权限>选择应用程序并授予其访问锁定屏幕的权限。

FAQ=22281

票数 4
EN

Stack Overflow用户

发布于 2022-09-21 08:02:07

FLAG_SHOW_WHEN_LOCKED被否决了。您也可以在旧api中使用它,

代码语言:javascript
复制
 final 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);

和新用法,试试这个

代码语言:javascript
复制
 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
            keyguardManager.requestDismissKeyguard(this, null);
        }

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1){
            setShowWhenLocked(true);
            setTurnScreenOn(true);
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52518910

复制
相关文章

相似问题

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