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);