首先,我是如何閱讀通知中的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或東西,可以提取區分兩個消息?
也許你可以存儲以前的消息,並檢查它們是否存在。如果不相等,您可以清除消息緩存,並將其替換爲最新的已知消息?一個人不可能多次發送相同的消息。我只是說這個想法,它可能不適合你的需求。 –
提取消息後,你保留它們? – Xenolion
你在視圖中展示它們或將它們保存在某個地方? – Xenolion