2013-04-08 4 views
0

Je reçois des notifications push de GCM et je souhaite qu'elles s'affichent dans la barre de notification. Je génère donc les notifications dans la classe GCMIntentService.Android: Gestion de droite avec plusieurs notifications

S'il y a déjà une notification dans la zone de notification, cette notification doit être ajoutée avec le nouveau message (avec l'utilisation de BigTextStyle). Mais comment puis-je savoir s'il y a une notification de mon application dans la zone de notification?

Répondre

0

Vous ne pouvez pas obtenir de notification existante, mais vous pouvez mettre à jour la notification existante en configurant l'ID de notification.

NotificationManager.notify(NotificationId, NotificationObject); 
+0

Oui, je sais mais je dois savoir si la dernière notification affichée est toujours affichée. Je veux fusionner mes notifications. – Mossos

+0

Pour le rendre plus clair, je donne un exemple: 1. Un nouveau message GCM "Message 1" arrive. Générer une NOTIFICATION 2. Un nouveau message GCM "Message 2" arrive. Si la première notification est toujours affichée, générer une nouvelle notification (avec le même ID) contenant "Message 1" et "Message 2". Sinon, affichez uniquement "Message 2". – Mossos

+0

J'étais dehors depuis 2 jours, mais pour autant que je sache, cela ne semble pas possible. Si j'ai trouvé quelque chose, je vous le ferai savoir – Amit

0

Non, vous ne pouvez pas savoir si une notification a déjà été postée; C'est quelque chose que vous devriez suivre dans votre application.

Heureusement, cependant, l'API pour la mise à jour d'une notification existante est identique à l'API pour en créer une nouvelle: notify(). C'est-à-dire, une fois que vous obtenez de nouvelles informations, ajoutez-le à un tampon interne (éventuellement un StringBuilder) représentant l'ensemble des notifications push reçues, puis créez une nouvelle notification avec Notification.Builder et appelez le notify() avec le même ID et le même tag que vous avez utilisé la dernière fois . Toute notification existante avec cet identifiant et cette étiquette sera remplacée par le nouveau contenu.

+0

Merci! Mais cela ne résout pas le problème. (Voir l'exemple dans mon commentaire à la première réponse). Apparemment, d'autres applications ne gèrent pas cela non plus. – Mossos

+0

Vous pouvez utiliser le 'deleteIntent' pour savoir quand votre notification précédente est effacée, donc à partir de cela, vous devriez être en mesure de savoir si elle est encore en train de montrer. Est ce que ça aide? – dsandler

Questions connexes