【问题标题】:Android studio - Reading whatsapp notifications problemAndroid studio - 阅读whatsapp通知问题
【发布时间】:2019-09-15 13:51:56
【问题描述】:

我正在开发一个 android 应用程序,其中一部分需要通过通知读取 WhatsApp 消息并对其进行分析。 我正在使用 NotificationListenerService 并且它正在工作,但是,当我收到通知然后从其他聊天中收到消息时,我遇到了通知被“分析”两次的问题。 p>

我想要的是对每条消息(通知)进行一次分析。

我已经尝试将通知 sortKey 或 StatusBarNotification 键保存在 HashSet 中,然后每次检查它是否已经包含该键,但这不起作用。

这是 onNotificationPosted 函数中的代码 -

String pack = sbn.getPackageName();
       if (pack.equals("com.whatsapp")) {
            Bundle extras = sbn.getNotification().extras;

       if (extras.getCharSequence("android.text") != null && extras.getString("android.title") != null) {

       if (sbn.getNotification().getSortKey() != null) {
              String title = extras.getString("android.title");
              String text = extras.getCharSequence("android.text").toString();

            //Checking if it's from specic group and analyzing the message and 
            //doing what needs to be done, not related to the problem.                                      

            }
        }
    }

我想要的结果是,如果其他聊天中有其他消息到达,每个通知都将被分析一次,并且不会再次发布

【问题讨论】:

    标签: java android android-studio whatsapp


    【解决方案1】:

    在不了解 WhatsApp 的内部工作原理的情况下,很难确切地说明您应该做什么,因为它们似乎将 Actions/Extras 重复用于各种事情(无论如何这都是有道理的)。

    不过,在这种情况下,您可以保留一份您已经“分析”过的列表/地图,如果再次得到它,请将其丢弃。

    【讨论】:

    • @Martib Marconici 可能我会这样做,这不是最好的解决方案,因为我不想阻止相同的消息被发送两次。我也考虑将消息标记为从通知中读取,但是我真的不知道该怎么做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 2017-10-05
    • 1970-01-01
    • 2013-12-06
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多