В моем приложении есть ошибка, из-за которой оно отправляет разные push-уведомления, и до сих пор каждое уведомление имело свой собственный идентификатор канала, поэтому пользователь получал для каждого нового уведомления новый канал, который он затем может включать/отключать с помощью переключателя. Эта ошибка теперь исправлена, но я хочу удалить старые ненужные каналы программно, и я нашел способ сделать это следующим образом:
// The id of the channel.
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val id: String = "my_channel_01"
notificationManager.deleteNotificationChannel(id)
Но поскольку каждый канал создавался по случайно сгенерированному идентификатору, и этот идентификатор был отброшен, я не могу удалить канал по его идентификатору.
Есть ли способ перечислить все идентификаторы каналов, которые получил пользователь, или каким-либо другим способом удалить старые каналы, не зная идентификатора?
Вы пробовали cancelAll()
метод, если диспетчер уведомлений
notificationManager.cancelAll()
получить полный список всех уже созданных каналов, вызвав получитьканалы уведомлений()
перебрать этот список и вызвать deleteNotificationChannel(id)
для ненужных/неизвестных каналов (NotificationChannel
есть метод получить идентификатор ())
это для отмены/удаления уведомлений, а не каналов