Android Notification Listener重复地狱

时间:2016-10-05 10:28:59

标签: java android notifications android-notifications

需要一些帮助 - 这是我的头脑!

我是ReadItToMe的开发者,这是一款能够读出您的消息并让您通过语音回复的应用程序。 我去年面临和黑客攻击的问题一直是重复通知。我将以WhatsApp为例。

如果我收到一个WhatsApp通知,欢乐日,那就是一个通知。如果我从另一个聊天中获得另一个聊天内容...我会收到一个群组通知,上一个未读取的聊天通知以及新的发布时间,这样您就无法检查它是否来自过去,然后是新通知。< / p>

我尝试过的解决方案:

  • 通过在他们到达时使用标题,消息和包名称创建通知的哈希代码来保存通知列表,然后在他们被解雇时将其从列表中删除(onNotificationRemoved)..但是什么知道!在上面的场景中,所有通知都被删除然后重新发送,因此这个解决方案没用。

    • 比较时间戳,由于重复通知具有新的时间戳,因此不起作用

    • 比较键/ ID时,这些内容永远不会因聊天而改变,因此它们并不是单个消息通知所独有的

    • 我忘记了许多其他人

    • 检查通知是否是一个至少忽略该通知的组,因为第一个通知始终是一个组,所以不起作用。仅当有多个通知时才会出现&#34; group&#34;实际上是一个内容类似于&#34; 2个新消息&#34;的组。

有没有人知道任何方式或者可以想出任何创造性的解决方案来准确确定(80%的准确度会发生)哪些通知真的是新的并且之前已经发布过? 或者这只是从根本上打破了Android ......

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我通过这种方式修复了它,你可以使用“when”属性结合使用时保存方式:

posts
  很久的时候   与此通知相关的时间戳,以纪元为单位的毫秒数。默认值:现在。选择与用户最相关的时间戳。对于大多数有限事件,这对应于事件发生的时间(或者将发生在事件尚未发生但是通知用户的情况下)。不确定事件应根据活动开始时间加上时间戳。

     

https://developer.android.com/reference/android/app/Notification.html#when

如果有人遇到这个问题,请随时问我,对不起,我是西班牙人。

答案 1 :(得分:0)

我有同样的问题,重复推送通知试试这个:

首先:从您的设备中删除所有重复的应用程序,在我的情况下,我有3个相同的应用程序。

第二:重新安装该应用程序,但尝试更改包名称,这对我有用。祝你好运