当前位置: 首页 > 知识库问答 >
问题:

如何区分两条WhatsApp消息?

梁学真
2023-03-14

首先,我是如何从通知中读取WhatsApp消息的?

嗯,我进行了研究,并且已经能够实现具有适当权限的notificationlistenerservice(没有任何秘密策略),并且能够监听来自WhatsApp的通知消息。这家伙给了我这个主意,功劳要归功于他。

不管怎样,我现在可以阅读消息了,但问题是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(一个包)结构:

> 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
> android.graphics.Bitmap@a4eb945 (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之类的方法可以提取出来区分两个消息?

共有1个答案

应安国
2023-03-14

真不敢相信我解决了我的问题。时间戳就是答案。这要归功于@xenolion对时间的建议。我的脑海中有一个先入为主的概念,即时间是不同的,但我只是检查了消息的时间戳,相同的消息有相同的时间戳。

 类似资料:
  • 我想向我的whatsapp收件人发送whatsapp消息,但whatsapp收件人需要通过向您在沙盒中选择的电话号码发送“加入[关键字]”whatsapp消息来选择加入 我想发送消息而不需要发送“加入[关键字]”WhatsApp消息

  • 我是Apache Beam的新手。 基本上,我有两个PCollection,每个都包含多个DataRecords,定义为: 每条记录都有一个id和多个数据字段。 我有两个收藏: 我需要找出: p1中存在但p2中不存在的数据记录 DataRecord只能通过其id字段进行区分。 到目前为止,我所做的是将两个PCollection实例转换为PCollection 然而,由于PCollection不允许

  • 问题内容: 通过Rabbitmq中的示例,消费者可以一次从队列中获取所有消息。如何使用一条消息并退出? 问题答案: 您必须声明basicQos设置,才能一次从ACK到NACK状态获取一条消息,并禁用自动ACK以便显式给出确认。 希望能帮助到你!

  • 嗨, 谢谢你,也很抱歉西班牙语的命名,我知道这让阅读代码变得有点困难。

  • 嗨,我正在使用twilio API发送一个消息到whatsapp号码,我需要的是从表单中获得号码和消息,并将数据放在twilio API中,我现在不知道如何构建逻辑,但我做到了这一点,但没有工作,我得到了这个错误 这就是我写的逻辑init的控制器文件 我希望我准确地解释了我需要什么