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

Некоторое время назад я обновил свое приложение, добавив поддержку 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 Ответ

0 голосов
/ 03 января 2019

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

NotificationCompat.Builder notificationBuilder = 
    new NotificationCompat.Builder(context, channelId).setOnlyAlertOnce(true);
...