在 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,但它在那里