2017-04-20 4 views
2

Ainsi, dans Nougat, plusieurs notifications de la même application sont automatiquement regroupées dans un groupe. Je mets un PendingIntent avec des extras sur mes notifications et si une notification spécifique est tapée, elle lance une activité spécifique (deep linking). Cependant, si j'appuie sur le groupe de notifications (c'est-à-dire sans étendre le groupe), mon application est simplement lancée comme si elle provenait du lanceur - son intention est vide, il n'y a pas d'extras (elle n'est pas lancée via le fourni PendingIntent).Le fait de cliquer sur une notification groupée ne déclenche pas le PendingIntent

Comment puis-je spécifier une intention à utiliser lorsque l'utilisateur tape sur un groupe de notifications?

Répondre

2

J'ai rencontré le même problème et après quelques recherches, il semble que vous ne pouvez pas définir un PendingIntent à utiliser lorsque Android décide de grouper automatiquement les notifications.

L'implémentation est à NotificationManagerService.maybeAddAutobundleSummary() dans les sources AOSP. Dans cette situation, le système génère toujours un PendingIntent pour lancer l'activité du programme de lancement.

Qu'est-ce que vous pourriez faire gérer les notifications de regroupement et de synthèse vous-même, comme décrit ici: http://blog.danlew.net/2017/02/07/correctly-handling-bundled-android-notifications/

Une autre option serait de itérer notifications actives en utilisant NotificationManager.getActiveNotifications() lorsque l'application est lancée, puis décider faire (par exemple gérer un lien profond en attente si trouvé).