Можно ли программно очистить уведомление?
Я пробовал это с, NotificationManager
но не работает. Есть ли другой способ сделать это?
android
notifications
рахул
источник
источник
Ответы:
Используйте следующий код, чтобы отменить уведомление:
В этом коде всегда используется тот же идентификатор, который используется для уведомлений. Если у вас есть разные уведомления, которые необходимо отменить, вам необходимо сохранить идентификаторы, которые вы использовали для создания уведомления.
источник
setContentText
), хотя я установил приоритет на 2. Есть предложения?От: http://developer.android.com/guide/topics/ui/notifiers/notifications.html
Но Донал прав, очистить можно только созданные вами уведомления.
источник
Поскольку никто не опубликовал код ответа на это:
.. и если у вас уже есть флаги, вы можете ИЛИ FLAG_AUTO_CANCEL вот так:
источник
notifcation.flags |= Notification.FLAG_AUTO_CANCEL;
Попробуйте использовать метод по умолчанию, указанный в NotificationManager .
NotificationManager.cancelAll()
чтобы удалить все уведомления.NotificationManager.cancel(notificationId)
чтобы удалить конкретное уведомление.источник
cancel
метода,cancel
метод не является статическим, поэтому вам понадобится экземпляр,NotificationManager
подобный этому:NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Затем вы можете позвонить,notificationManager.cancel(notificationId);
как Рохит Сутар, упомянутый в его ответе.notificationId
это просто идентификатор, в который выnotificationManager.notify(notificationId, mNotification)
Начиная с уровня API 18 (Jellybean MR2), вы можете отменить уведомления, отличные от ваших, через NotificationListenerService.
...
источник
.setAutoCancel (истина)
когда вы нажимаете на уведомление, откройте соответствующее действие и удалите уведомление из панели уведомлений
источник
Если вы генерируете уведомление из службы, которая запускается на переднем плане, используя
Затем выдавая
не отменяет уведомление, и оно по-прежнему отображается в строке состояния. В этом конкретном случае вам нужно будет выдать
из службы, чтобы вернуть ее в фоновый режим и одновременно отменить уведомления. Кроме того, вы можете перевести его в фоновый режим, не отменяя уведомление, а затем отменить уведомление.
источник
Если вы используете
NotificationCompat.Builder
(частьandroid.support.v4
), просто вызовите метод его объектаsetAutoCancel
Некоторые ребята сообщали, что
setAutoCancel()
у них не получилось, так что вы можете попробовать и этот способ.Обратите внимание, что этот метод
getNotification()
устарел !!!источник
это работает, если вы используете конструктор уведомлений ...
источник
для получения дополнительной информации нажмите здесь http://androiddhina.blogspot.in/2015/01/how-to-clear-notification-in-android.html
источник
На самом деле, как было сказано перед тем, как начать с уровня API 18, вы можете отменить уведомления, отправленные другими приложениями, отличными от вашего, с помощью NotificationListenerService, но этот подход больше не будет работать на Lollipop, вот способ удалить уведомления, охватывающие также Lillipop API.
источник
cancelNotification
что это?Все уведомления (даже уведомления других приложений) могут быть удалены путем прослушивания «NotificationListenerService», как указано в реализации NotificationListenerService.
В сервис надо звонить
cancelAllNotifications()
.Служба должна быть включена для вашего приложения через:
«Приложения и уведомления» -> «Доступ к специальным приложениям» -> «Доступ к уведомлениям».
источник
этот код работал у меня:
источник
Я считаю САМЫМ ПОСЛЕДНИМ и ОБНОВЛЕННЫМ для AndroidX и обратной совместимости. Лучший способ сделать это (Kotlin и Java) - это сделать так:
Или отменить все уведомления:
Сделано для AndroidX или библиотек поддержки.
источник