У меня есть способ включить будильник, когда в 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)
Я также попытался просто снова вызвать код Priority only, но это тоже не работает.
assert mNotificationManager != null;
mNotificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY);
Я хочу, чтобы будильники снова блокировались по умолчанию в режиме «Только приоритет», когда я выключаю переключатель. Однако, что бы я ни пытался, будильник все еще звонит после того, как я его отключил. Любые идеи?




Вы можете сначала получить Политику, прежде чем изменять ее, с помощью NotificationManager.getNotificationPolicy() и установить ее на эту политику, когда закончите, вместе с NotificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_ALL).
Вы должны использовать что-то вроде этого:
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));
Это означает, что если вы хотите, чтобы политика имела фильтр для сообщений или вызовов, вы должны установить этот флаг в части политики, относящейся к категории. В противном случае он всегда будет запрещать звонки или сообщения.