【问题标题】:Android Notification Listener duplicate hellAndroid Notification Listener 重复地狱
【发布时间】: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


【解决方案1】:

我也遇到了同样的问题,我用这种方式解决了,你可以使用“when”属性结合使用when的保存方式:

public void onNotificationPosted(StatusBarNotification sbn) {    
if (System.currentTimeMillis() - sbn.getNotification().when > 3000 ||
                isInArray(sbn.getNotification().when)) {
            //when != sbn.getPostTime()
            //If notification is 3 seconds old, it is discarted
            return;
        } else {
            //Else, push to the array of notifications "when-id" to compare next time
            goNextPosition(sbn.getNotification().when);
        }
... next part of code
}

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

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

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

【讨论】:

  • isInArray 是什么?那是方法名称吗?如何在 if 循环中实现该方法。能否请您发布整个代码?
【解决方案2】:

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

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多