Как узнать, что пользователь отключил нотификации?

Посмотреть в Telegram: @AndroidSobes/256
Для эффективного решения CRM задач часто требуется знать, какой процент пользователей отключает нотификации после очередной рассылки.

До Android 8.0 (API v26) это выполнялось просто вызовом метода NotificationManager.areNotificationsEnabled().

После введения каналов нотификаций, этого стало недостаточно. Пользователь может отключить нотификации для определенного канала, но оставить включенной общую настройку нотификаций.

Чтобы узнать, включены ли нотификации у канала, надо сначала получить объект NotificationChannel методом NotificationManager.getNotificationChannel(channelId: String) или получить список всех каналов методом NotificationManager.getNotificationChannels().

После этого вызываем метод NotificationChannel.getImportance(). Если этот метод возвращает значение NotificationManager.IMPORTANCE_NONE, то данный канал выключен.