为了账号安全,请及时绑定邮箱和手机立即绑定

如何还原此 NotificationManager.Policy 方法?

如何还原此 NotificationManager.Policy 方法?

MMMHUHU 2022-06-04 16:21:12
我有一种方法可以在 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);当我关闭开关时,我希望警报在“仅限优先”模式下默认被阻止。但是,无论我尝试什么,在我关闭它后警报仍然响起。有任何想法吗?
查看完整描述

2 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

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



查看完整回答
反对 回复 2022-06-04
?
BIG阳

TA贡献1859条经验 获得超6个赞

你必须使用这样的东西:

 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));

这意味着如果您希望策略具有消息或呼叫过滤器,则必须在策略的类别部分设置该标志。否则,它将始终不允许呼叫或消息。


查看完整回答
反对 回复 2022-06-04
  • 2 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号