问题
Is there any callback my application receives when user blocks a Notification Channel created by my application OR it can be detected later ?
回答1:
No, there is no such listener provided by the APIs. You will have to check each time before you make a notification.
From the developer document
To find out if a user blocked a notification channel, you can call getImportance(). If the notification channel is blocked, getImportance() returns IMPORTANCE_NONE.
回答2:
Starting from Android P, there is a system broadcast for this: https://developer.android.com/reference/android/app/NotificationManager.html#ACTION_NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED
It's impossible to reliably sync our backend push servers with the channel settings without this (you have to poll...)
来源:https://stackoverflow.com/questions/46294474/how-to-detect-a-notification-channel-is-blocked-by-user-in-android-8-0