如何在android中获取通知计数?

时间:2014-06-03 14:16:17

标签: android notifications

我有一个自定义启动器,我正在显示自定义通知图标 如果用户点击通知图标,他就会看到通知。这部分按预期工作。我可以扩展通知列表。

但现在我的要求是,因为我正在使用自定义通知图标,我希望显示通知计数(如果有任何通知,或者有10个通知)。我希望显示用户有未读/未检查通知的数量。

如何获取未经检查的通知的数量(计数)?

我已经完成了几个例子并链接如下:

Link 1

Link 2

但所有这些链接都显示了如何创建通知或如何扩展通知列表。如何获得通知计数?

任何一段代码或示例都非常值得赞赏。

由于

3 个答案:

答案 0 :(得分:1)

您可以使用此示例,它适用于我

   Notification notification = new Notification(R.drawable.direction, "Cool Notification",
            System.currentTimeMillis());
    /********LIKE THIS*********/
    notification.number = notificationCount++;
    /********LIKE THIS*********/

    notification.setLatestEventInfo(context, "Cool Notification Title",
            "updated notificaiton message", null);


    NotificationManager nm = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
    nm.notify(R.id.my_motification, notification);

因此,每次显示通知时都可以增加notification.number。

答案 1 :(得分:0)

如果您的目标是API级别18+,那么您很幸运,因为您可以提供NotificationListenerService来访问当前通知和/或在创建或解除时收到提醒。

否则,您可以使用注册AccessbilityService并监听AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED事件的旧技巧。 This就是这种方法的一个很好的例子。

答案 2 :(得分:0)

我想分享一下如何获取通知计数的策略。当我阅读文档时,我没有看到任何存储方式,检索通知计数。我正在做一个Note Reminder,这个提醒会在特定日期发出警报。鉴于我有很多提醒,向每个提醒发送通知只需替换通知列表中的提醒。这不好。我的接收方都没有办法知道第n次调用通知。在我看来,通知在这种情况下缺乏光彩。

因此,我看到的一个策略是将计数责任直接推迟到数据库。我必须提供一种方法,它返回我在数据库上的已失效提醒的数量,将其作为额外的内容放入启动我的接收器的待定意图内的意图。从那里我可以解压附加内容并相应地设置通知。通过这种方式,我获得了所需的信息,并且可以对通知内容进行建模,以显示未触及的提醒数量。在图标旁边添加一个计数徽章似乎不可能给出默认的android,但可以使用第三方解决方案或使用三星的TouchWiz或Xperia中的知名Android UI。在网上搜索,这似乎是另一个不同的故事。我倾向于不这样做,只是通过内容显示我已经失去提醒的数量。

我希望这可以帮助那些在检索或存储通知计数方面遇到类似问题的人给出每个应用程序的唯一通知ID。

希望这有帮助!