我有一个应用程序可以在某个事件上打开一个活动。
就像报警申请一样。我使用以下标志:
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)上就不行了。
当应用程序启动该活动时,屏幕将被打开并显示锁定屏幕。我的活动没有显示。
输入密码后,我看到我的活动。
然后,我更改了包名,并且在没有锁定屏幕的情况下成功地显示了活动。
小米似乎出于某种原因把我们的原始应用列入了黑名单。
我想知道是否有人遇到过这种行为并有了解决方案?
发布于 2018-10-01 11:40:03
发布于 2022-09-21 08:02:07
FLAG_SHOW_WHEN_LOCKED被否决了。您也可以在旧api中使用它,
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);和新用法,试试这个
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);
}https://stackoverflow.com/questions/52518910
复制相似问题