相关疑难解决方法(0)

NotificationListenerService onNotificationPosted()在分组通知的一部分时多次调用单个通知

我正在尝试使用NotificationListenerService来收听android通知.

我已经使用Whatsapp和环聊通知测试了代码.

场景1: 1来自1个用户的消息我收到onNotificationPosted()调用一次(这是正确的)

场景2: 2我收到的来自1个用户的消息onNotificationPosted()相应调用两次(这是正确的)[我再收到一个分组通知,其摘要文本与文本相同.我手动忽略此通知]

场景3:我收到的来自多个用户的多条消息onNotificationPosted()按照no进行多次调用.用户(这不正确).

示例:4个用户发送了4条消息,并从第5个用户收到了新消息.我收到5个onNotificationPosted()调用(4个用于旧消息,1个用于新消息).问题是我无法区分新的那个.

我有一个鹅卵石智能手表.我注意到他们正在显示正确的信息.我想知道我的通知监听器服务是否有问题.

我需要帮助.

我已经在帖子下面查了一下. Android NotificationListenerService onNotificationPosted触发两次 但是这是一个不同的场景,因为一个是为消息调用而另一个是为分组通知调用的,我手动处理)

android android-notifications

11
推荐指数
0
解决办法
1003
查看次数

对于 gmail 和 WhatsApp,Android onNotificationPosted 被调用两次

我知道这看起来像是Android NotificationListenerService onNotificationPosted 两次触发的副本,并且NotificationListenerService onNotificationPosted() 当它是分组通知的一部分时为单个 Notification 多次调用,但我已经尝试了他们的解决方案,但它们似乎不起作用。

我想要做的就是拥有一个后台服务,该服务计算一个人通过电话收到的通知数量,然后将其写入文本文件。

它适用于短信和环聊通知(即每个通知只触发一次)但是当我使用 WhatsApp 和 Gmail 测试它时,它被触发两次,因此,对于每个 Gmail 通知,我的文本文件中有两行。

这是我的代码。任何帮助将不胜感激。

public class NotifCounterService extends NotificationListenerService {

   public static String TAG = NotifCounterService.class.getSimpleName();

   Date dateStart;

   private Logger logger;

   private Context mContext;

   @Override
   public void onCreate() {
      Log.d(TAG, "Created");

      logger = new Logger(TAG);
      mContext = getApplicationContext();
   }

   @Override
   public IBinder onBind(Intent intent) {
      return super.onBind(intent);
   }

   @Override
   public void onNotificationPosted(StatusBarNotification sbn) {

      Log.d(TAG, "Notification has arrived");

      Log.d(TAG, "ID: " + sbn.getId() …
Run Code Online (Sandbox Code Playgroud)

java notifications android notification-listener

4
推荐指数
2
解决办法
2452
查看次数