如何还原此 NotificationManager.Policy 方法?

我有一种方法可以在 Android P 中打开“请勿打扰”时允许警报。我有一个切换按钮来切换警报并且一切正常,但问题是我不知道使用什么方法来关闭警报.


这是我的代码:


    private void allowAlarms() {

    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

    assert notificationManager != null;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {

        notificationManager.setNotificationPolicy(

                new NotificationManager.Policy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS,

                        NotificationManager.Policy.PRIORITY_SENDERS_ANY,

                        NotificationManager.Policy.PRIORITY_SENDERS_ANY));

    }

    notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY);

}

我试过取消通知管理器,但这不起作用,警报仍然响起。


notificationManager.cancel(0)

我也尝试过简单地再次调用仅优先级代码,但这也不起作用。


assert mNotificationManager != null;

                    mNotificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY);

当我关闭开关时,我希望警报在“仅限优先”模式下默认被阻止。但是,无论我尝试什么,在我关闭它后警报仍然响起。有任何想法吗?


MMMHUHU
浏览 114回答 2
2回答

慕盖茨4494581

您可以在更改之前先获取策略,使用NotificationManager.getNotificationPolicy(),并在完成后将其设置为该策略,以及NotificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_ALL)

BIG阳

你必须使用这样的东西: notificationManager.setNotificationPolicy(              new NotificationManager.Policy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS | NotificationManager.Policy.PRIORITY_CATEGORY_CALLS | NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES,                     NotificationManager.Policy.PRIORITY_SENDERS_ANY,                     NotificationManager.Policy.PRIORITY_SENDERS_ANY));这意味着如果您希望策略具有消息或呼叫过滤器,则必须在策略的类别部分设置该标志。否则,它将始终不允许呼叫或消息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java