【发布时间】:2017-02-13 18:06:36
【问题描述】:
需要一点帮助 - 这让我很头疼!
我是 ReadItToMe 的开发者,这款应用可以读出您的消息并让您通过语音回复。 去年我一直面临和破解的问题是重复通知。我将以 WhatsApp 为例。
如果我收到一个 WhatsApp 通知,快乐的日子,它就是一个通知。如果我从另一个聊天中收到另一个.. 我收到一个群组通知,上一个未读聊天通知以及新的发布时间,因此您无法检查它是否来自过去,然后是新通知。
我尝试过的解决方案:
-
通过在通知到达时使用通知的标题、消息和包名称创建通知的哈希码,然后在通知被解雇时将其从列表中删除 (onNotificationRemoved) 来保持通知列表的读取。但是知道什么!在上述情况下,所有通知都会被删除然后重新发送,因此这个解决方案是无用的。
比较时间戳,这不起作用,因为重复的通知有新的时间戳
比较键/ID,这些在聊天中永远不会改变,因此它们不是单个消息通知所独有的
我忘记了许多其他人
检查通知是否是一个组以至少忽略它,这是行不通的,因为第一个通知始终是一个组。只有当有多个通知时,“群”实际上是一个具有“2条新消息”等内容的群。
有没有人知道或能想到任何创造性的解决方案来准确确定(80% 的准确率)哪些通知是真正新的,哪些是以前发布的? 或者这只是在 Android 上被彻底破坏了......
【问题讨论】:
-
"然后在他们被解雇时将他们从列表中删除 (onNotificationRemoved)。" - 为什么要删除,您可以将其存储在数据库中,假设过去 12 小时并仅清除早于 X 小时的记录?
-
原因是,如果故意再次发送相同的消息,即有人在 12 小时内再次发送“lol”,则当它实际上是合法的时,将被视为重复消息新消息。不过,感谢您的回应。 (顺便说一句,这是我的旧帐户,我正在等待合并)
-
现在遇到了同样的问题...
-
嗨,Rob,我想知道您为这个问题找到的解决方案是什么。即使我被困在这个类似的问题上。请帮帮我
标签: java android notifications android-notifications