在 ListView 中列出所有激活的通知

Posted

技术标签:

【中文标题】在 ListView 中列出所有激活的通知【英文标题】:List all activated notifications in a ListView 【发布时间】:2014-05-30 20:13:49 【问题描述】:

我无法删除我尚未创建的通知。我知道,但我可以列出所有通知(主要是文本)以将它们放在 ListView 或其他控件中吗?

谢谢

【问题讨论】:

您需要添加一些代码并重新提出您的问题。这还不够描述 好的,但我不知道如何开始编程......我想捕捉所有通知的文本(消息推送)并管理它们...... 【参考方案1】:

如果您的目标是 API 级别 18+,您可以为此使用 NotificationsListenerService。请注意,您需要特殊的 BIND_NOTIFICATION_LISTENER_SERVICE 权限。

 <service android:name=".NotificationListener"
          android:label="@string/service_name"
          android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
     <intent-filter>
         <action android:name="android.service.notification.NotificationListenerService" />
     </intent-filter>
 </service>

您可以使用NotificationListenerService.getActiveNotifications() 方法获取所有当前通知。

如果您想在 API 级别 17 或更低级别上支持此功能,则可以使用辅助功能 API 来读取通知,但它更复杂。

【讨论】:

【参考方案2】:

我找到了一个使用无障碍 API 的完美示例:

https://github.com/ograycode/NotificationWatcher/

但我要求获取有关通知的所有信息,不仅是包和文本,...

【讨论】:

以上是关于在 ListView 中列出所有激活的通知的主要内容,如果未能解决你的问题,请参考以下文章

如何取消 Android ListView 项目在 ListView 的 setOnItemClickListener 中被激活/突出显示?

MainActivity 找不到 ID 为 android.R.id.list 的 ListView,但它在那里

如何在 Flutter 中自动滚动 Listview.separated 中的所有 List Tiles?

将两个 ListView 合并为一个

颤动本地通知发送带有有效负载选项的 ID

ListView的点击事件,长按事件,数据刷新