Разница между setNotificationPolicy и setInterruptionFilter в Android

Класс NotificationManager в Android содержит два метода setInterruptionFilter (int interruptionFilter) и setNotificationPolicy (NotificationManager.Policy policy).

Из документов:

setInterruptionFilter

public final void setInterruptionFilter (int interruptionFilter)

Устанавливает текущий фильтр прерывания уведомлений.

Фильтр прерывания определяет, какие уведомления могут прерывать пользователя (например, с помощью звука и вибрации) и применяется глобально.

setNotificationPolicy

public void setNotificationPolicy (NotificationManager.Policy policy)

Задает текущую политику уведомлений.

Оба были добавлены на уровне API 23. Насколько я понимаю, оба выполняют одну и ту же задачу по настройке политики «Не беспокоить» для устройства Android. В чем именно разница между двумя методами?


person Pushkar    schedule 10.08.2019    source источник


Ответы (1)


с помощью setNotificationPolicy вы можете установить политику «Не беспокоить» «Разрешить прерывания», например NotificationManager.Policy.PRIORITY_CATEGORY_ALARM (разрешить тревогу)

с помощью setInterruptionFilter вы включаете или отключаете функцию «Не беспокоить» где:

NotificationManager.INTERRUPTION_FILTER_PRIORITY = включить DND с настройками setNotificationPolicy

NotificationManager.INTERRUPTION_FILTER_NONE = включить DND для каждого прерывания

NotificationManager.INTERRUPTION_FILTER_ALL = отключить режим "Не беспокоить"

СОВЕТ. Вы можете сначала получить политику, прежде чем изменять ее с помощью NotificationManager.getNotificationPolicy(), чтобы установить ее обратно после того, как вы закончите.

person jeanC    schedule 25.09.2019