我有一种方法可以在 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)

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));
这意味着如果您希望策略具有消息或呼叫过滤器,则必须在策略的类别部分设置该标志。否则,它将始终不允许呼叫或消息。
添加回答
举报
0/150
提交
取消