紧急通知,不会在锁定的屏幕上提示解锁以打开活动

时间:2017-06-07 06:29:03

标签: android android-notifications android-notification-bar

有一个名为Medical Id的紧急应用程序。它有一个奇妙的功能,它在锁定的屏幕上显示通知。用户只需双击通知即可打开活动。对于其他应用程序通知,如果用户点击,则会提示首先解锁。我正在寻找相同的功能,但无法实现相同的功能。我试过在附加的窗口添加标志。

@Override
    public void onAttachedToWindow()
    {
        super.onAttachedToWindow();
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON &
                WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD &
                WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED &
                WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON &
                WindowManager.LayoutParams.FLAG_FULLSCREEN
        );
    }

还向清单中的活动添加了显示锁定屏幕,但它会在打开活动之前提示解锁屏幕。为了清晰起见,请查看医疗ID。我不知道他们用什么来绕过解锁。通知的电话设置在我的手机中是公开的。令人惊讶的是,即使您的手机通知设置是私密的,即使没有其他通知,也会出现医疗ID通知。任何线索都有帮助。

2 个答案:

答案 0 :(得分:0)

你应该使用管道|而不是&符号&

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

此功能仅适用于Android 4.4

答案 1 :(得分:0)

如果要在锁定屏幕上单击通知时显示“活动”,则可以在“活动”生命周期的OnCreate中执行此操作

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
        setTurnScreenOn(true);
        setShowWhenLocked(true);
    } else {
        window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
        window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);
    }
}