2017-10-19 54 views
0

首先,我是如何閱讀通知中的WhatsApp消息的?如何區分兩個WhatsApp消息?

好吧,我研究並已能夠實現與適當的權限NotificationListenerService沒有祕密的策略,任何),並聽取WhatsApp的通知消息。積分爲this guy給我這個想法。

無論如何,我現在可以閱讀郵件,但問題是WhatsApp有時會多次發送相同的郵件,但不會顯示多個通知。我怎麼知道?

我記錄了聽衆收到的通知,發現了幾條相同的消息。通知一般結構看起來是這樣的:

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(A包)結構:

> 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) 

有沒有辦法像Id或東西,可以提取區分兩個消息?

+0

也許你可以存儲以前的消息,並檢查它們是否存在。如果不相等,您可以清除消息緩存,並將其替換爲最新的已知消息?一個人不可能多次發送相同的消息。我只是說這個想法,它可能不適合你的需求。 –

+0

提取消息後,你保留它們? – Xenolion

+0

你在視圖中展示它們或將它們保存在某個地方? – Xenolion

回答

1

我不相信我解決了我的問題。時間戳是答案。信用可以通過@xenolion建議時間。我的想法已經預先設定了時間不同的概念,但我只是檢查了消息的時間戳,而相同的消息有相同的時間戳。

+0

**快樂編碼!** – Xenolion

相關問題