NotificationChannel - Как показать уведомление на некоторое время, а затем скрыть его?

Некоторое время назад я обновил свое приложение, добавив поддержку Android 8+, после обновления уведомлений для использования необходимого NotificationChannel я заметил, что потерял функцию.
Приложение использует уведомление хронометра, тогда я смог обновить приоритет уведомления, чтобы отобразить уведомление с помощью PRIORITY_HIGH, поэтому уведомление было "передано" пользователю, а затем отредактировал приоритет уведомления на PRIORITY_LOW, чтобы скрыть уведомление.

После прочтения документов, насколько я понял, я не могу контролировать приоритет после создания NotificationChannel, оставляя этот элемент управления пользователю, однако запрос пользователя на изменение настроек уведомлений не является оптимальным для моего использования.

Соответствующий код:

//Creating the notification channel (while setting up the app)
NotificationChannel channel = new NotificationChannel(channelId, channelTitle, NotificationManager.IMPORTANCE_HIGH);

//Editing the NotificationChannel to lower the Notification priority (not working)
NotificationChannel channel = notificationManager.getNotificationChannel(channelId);
channel.setImportance(NotificationManager.IMPORTANCE_LOW);     
notificationManager.createNotificationChannel(channel);

Есть ли способ выполнить это поведение, все еще используя NotificationChannels?

1 ответ

Оказывается, я слишком много думал об этом, просто добавив опцию setOnlyAlertOnce в NotificationBuilder, при этом все еще используя NotificationManager.IMPORTANCE_HIGH для настройки канала, что приведет к ожидаемому поведению, например так:

NotificationCompat.Builder notificationBuilder = 
    new NotificationCompat.Builder(context, channelId).setOnlyAlertOnce(true);
Другие вопросы по тегам