2

我是否可以从当前位于系统托盘中的应用程序中获取所有通知?我注意到我们可以更新托盘中已经存在的现有通知,但我想知道我是否可以检索所有通知。 http://developer.android.com/guide/topics/ui/notifiers/notifications.html#Updating

谢谢

4

2 回答 2

0

简短的回答是“否”,通知管理器不提供查询当前托盘中通知的方法。

如果您想跟踪托盘中通知,这是可能的,但需要一些工作。您将需要创建一种方法来跟踪通知的状态,最简单的方法可能是数据库。您所做的是在创建通知时为通知插入一行,并带有该通知的 id。接下来,您需要构建一个ActivityService,它将在其生命周期内使用通知状态更新您的数据库。在向经理发布通知之前,您需要添加一个contentIntent和一个deleteIntent来通过您刚刚创建的ActivityService进行路由。contentIntent会在用户点击通知时被调用,而deleteIntent会在用户关闭它时被调用。当其中任何一个发生时,更新您的数据库以跟踪最新状态!

如果你实现了这一点,你将有一种方法来跟踪你的通知,以及它们在托盘中的状态。不幸的是,没有简单、现成的方法来查询它们,特别是如果它们不是您创造的。

于 2013-04-25T12:51:56.957 回答
0

试试这个 NotificationListenerService:

https://developer.android.com/reference/android/service/notification/NotificationListenerService

于 2020-01-28T17:56:26.363 回答