我有一種方法可以在 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
提交
取消