Est-il possible d'effacer une notification par programme?
Je l'ai essayé avec NotificationManager
mais ça ne marche pas. Y a-t-il une autre façon de le faire?
android
notifications
rahul
la source
la source
Réponses:
Utilisez le code suivant pour annuler une notification:
Dans ce code, il y a toujours le même identifiant utilisé pour les notifications. Si vous avez différentes notifications qui doivent être annulées, vous devez enregistrer les identifiants que vous avez utilisés pour créer la notification.
la source
setContentText
) bien que j'aie défini la priorité sur 2. Des suggestions?De: http://developer.android.com/guide/topics/ui/notifiers/notifications.html
Mais Donal a raison, vous ne pouvez effacer que les notifications que vous avez créées.
la source
Puisque personne n'a publié de code de réponse à cela:
.. et si vous avez déjà des indicateurs, vous pouvez OU FLAG_AUTO_CANCEL comme ceci:
la source
notifcation.flags |= Notification.FLAG_AUTO_CANCEL;
Veuillez essayer la méthode par défaut fournie dans NotificationManager .
NotificationManager.cancelAll()
pour supprimer toutes les notifications.NotificationManager.cancel(notificationId)
pour supprimer une notification particulière.la source
cancel
méthode, lacancel
méthode n'est pas statique, vous avez donc besoin d'une instanceNotificationManager
comme celle-ci:NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Vous pouvez alors appelernotificationManager.cancel(notificationId);
comme Rohit Suthar référencé dans sa réponse.notificationId
est simplement l'ID que vous avez transmisnotificationManager.notify(notificationId, mNotification)
À partir du niveau d'API 18 (Jellybean MR2), vous pouvez annuler les notifications autres que les vôtres via NotificationListenerService.
...
la source
.setAutoCancel (vrai)
lorsque vous cliquez sur la notification, ouvrez l'activité correspondante et supprimez la notification de la barre de notification
la source
Si vous générez une notification à partir d'un service démarré au premier plan à l'aide de
Puis émettre
ne finit pas par annuler la notification et la notification apparaît toujours dans la barre d'état. Dans ce cas particulier, vous devrez émettre
depuis le service pour le remettre en arrière-plan et pour annuler simultanément les notifications. Vous pouvez également le pousser en arrière-plan sans qu'il annule la notification, puis annuler la notification.
la source
Si vous utilisez
NotificationCompat.Builder
(une partie deandroid.support.v4
), appelez simplement la méthode de son objetsetAutoCancel
Certains types signalaient que
setAutoCancel()
cela ne fonctionnait pas pour eux, vous pouvez donc essayer de cette façon égalementNotez que la méthode
getNotification()
est obsolète !!!la source
cela fonctionne si vous utilisez un générateur de notification ...
la source
pour plus de références, cliquez ici http://androiddhina.blogspot.in/2015/01/how-to-clear-notification-in-android.html
la source
En fait, comme répondu avant de commencer avec le niveau d'API 18, vous pouvez annuler les notifications publiées par d'autres applications différentes de la vôtre en utilisant NotificationListenerService, mais cette approche ne fonctionnera plus sur Lollipop, voici le moyen de supprimer les notifications couvrant également l'API Lillipop.
la source
cancelNotification
qu'est-ce que c'est?Toutes les notifications (même les autres notifications d'application) peuvent être supprimées en écoutant 'NotificationListenerService' comme mentionné dans l' implémentation NotificationListenerService
Dans le service, vous devez appeler
cancelAllNotifications()
.Le service doit être activé pour votre application via:
«Applications et notifications» -> «Accès spécial aux applications» -> «Accès aux notifications».
la source
ce code a fonctionné pour moi:
la source
Je crois que le plus RÉCENT et MIS À JOUR pour AndroidX et la compatibilité descendante. La meilleure façon de faire (Kotlin et Java) devrait être la suivante:
Ou pour annuler toutes les notifications, c'est:
Conçu pour AndroidX ou les bibliothèques de support.
la source