2017-10-19 19 views
0

Premièrement, comment ai-je lu les messages WhatsApp à partir des notifications?Comment faire la différence entre deux messages WhatsApp?

Eh bien, je l'ai étudié et ont été en mesure de mettre en œuvre un NotificationListenerService avec des autorisations appropriées (aucune stratégie sournoise que ce soit) et écouter les messages de notifications WhatsApp. Le crédit va au this guy pour m'avoir donné cette idée.

Quoi qu'il en soit, je suis capable de lire les messages maintenant mais le problème est que WhatsApp envoie apparemment plusieurs fois le même message plusieurs fois mais n'affiche pas plusieurs notifications pour cela. Comment puis-je savoir?

J'ai enregistré la notification reçue par mon écouteur et trouvé plusieurs messages identiques. La structure générale de la notification ressemble à quelque chose comme ceci:

StatusBarNotification.toString(): 

> 10-18 23:43:24.236 16159-16181/com.company D/WhatsApNotifListService: 
> StatusBarNotification(pkg=com.whatsapp user=UserHandle{0} id=1 
> tag=null score=0 key=0|com.whatsapp|1|null|10170: Notification(pri=0 
> contentView=com.whatsapp/0x1090078 vibrate=null sound=null 
> defaults=0x0 flags=0x200 color=0xffe65100 category=msg 
> groupKey=group_key_messages vis=PRIVATE 
> publicVersion=Notification(pri=0 contentView=com.whatsapp/0x1090078 
> vibrate=null sound=null defaults=0x0 flags=0x0 color=0xffe65100 
> category=msg vis=PRIVATE))) 

Notification.extras (Bundle) Structure:

> 10-18 23:42:46.199 16159-16211/com.company D/Util: android.title 
> Manish (java.lang.String) 
> 
> 10-18 23:42:46.199 16159-16211/com.company D/Util: android.subText 
> null (null) 
> 
> 10-18 23:42:46.201 16159-16211/com.company D/Util: 
> android.car.EXTENSIONS Bundle[mParcelledData.dataSize=1852] 
> (android.os.Bundle) 
> 
> 10-18 23:42:46.201 16159-16211/com.company D/Util: 
> android.showChronometer false (java.lang.Boolean) 
> 
> 10-18 23:42:46.202 16159-16211/com.company D/Util: android.icon 
> 2130840435 (java.lang.Integer) 
> 
> 10-18 23:42:46.202 16159-16211/com.company D/Util: android.text Bdbdjd 
> (java.lang.String) 
> 
> 10-18 23:42:46.202 16159-16211/com.company D/Util: android.progress 0 
> (java.lang.Integer) 
> 
> 10-18 23:42:46.202 16159-16211/com.company D/Util: android.progressMax 
> 0 (java.lang.Integer) 
> 
> 10-18 23:42:46.202 16159-16211/com.company D/Util: android.showWhen 
> true (java.lang.Boolean) 
> 
> 10-18 23:42:46.202 16159-16211/com.company D/Util: 
> android.rebuild.applicationInfo ApplicationInfo{1a7615bc com.whatsapp} 
> (android.content.pm.ApplicationInfo) 
> 
> 10-18 23:42:46.202 16159-16211/com.company D/Util: android.largeIcon 
> [email protected] (android.graphics.Bitmap) 
> 
> 10-18 23:42:46.202 16159-16211/com.company D/Util: android.infoText 
> null (null) 
> 
> 10-18 23:42:46.202 16159-16211/com.company D/Util: 
> android.wearable.EXTENSIONS Bundle[mParcelledData.dataSize=668] 
> (android.os.Bundle) 
> 
> 10-18 23:42:46.202 16159-16211/com.company D/Util: 
> android.originatingUserId 0 (java.lang.Integer) 
> 
> 10-18 23:42:46.202 16159-16211/com.company D/Util: 
> android.progressIndeterminate false (java.lang.Boolean) 

Est-il possible comme Id ou quelque chose qui peut être extrait pour différencier les deux messages?

+0

Peut-être pouvez-vous stocker les messages précédents et vérifier s'ils existent. Si elles ne sont pas égales, vous pouvez effacer le cache des messages et le remplacer par le dernier message connu? Il est peu probable qu'une personne envoie le même message plusieurs fois. Je dis juste l'idée, cela pourrait ne pas correspondre à vos besoins. –

+0

Après avoir extrait les messages, où les gardez-vous? – Xenolion

+0

Les montrez-vous dans une vue ou vous les gardez quelque part? – Xenolion

Répondre

1

Je n'arrive pas à croire que j'ai résolu mon problème. L'horodatage était la réponse. Le mérite revient à @xenolion pour avoir suggéré du temps. Mon esprit avait une idée préconçue sur le temps étant différent mais je viens de vérifier l'horodatage des messages et les messages identiques ont le même horodatage.

+0

** Codage heureux! ** – Xenolion