检测通知是否已被删除

4
我有一个问题,想要检测通知栏中的通知何时被移除。
我可以使用AccessibilityService扫描通知,并将其ParcelableData转换为通知。
Notification notif = (Notification) event.getParcelableData();

我有一个想法,就是利用通知的PendingIntent是否被点击,但我找不到如何检测它的任何信息。

你有什么想法吗?我现在有些绝望了...已经尝试了几个小时。


你可以在 https://dev59.com/Wmoy5IYBdhLWcg3wCpsz 找到你的答案。 - Chirag Patel
我实际上并不想让我的通知被检测到。我是在寻找其他软件/应用程序的通知被删除... - Aeefire
4个回答

4

2
这不是OP想要的,他想检测其他应用程序通知的删除。不确定为什么这有最多的赞数。 - Denny

1

这里已经有一个非常相似的问题在SO上得到了回答:

检测新的Android通知

简而言之,可以检测到新通知的出现,但是无法检测通知何时被解除。


哼。也许我应该采用这里介绍的方法:http://gmariotti.blogspot.co.uk/2013/02/how-to-write-dashclock-extension_23.html?m=1 - Aeefire
这基本上是我链接中的第一个答案。毫无疑问,该链接提供了答案。 - Michell Bak

1
据我所知,除非您拥有root权限,否则这是不可能的。但从昨天发布的Android 4.3开始,这是可能的。以下是一些链接: Android开发者博客:

通知访问 - 您的应用现在可以访问和交互状态栏通知流。您可以以任何方式显示它们,包括将其路由到附近的蓝牙设备,并且您可以根据需要更新和解除通知。

Android开发者网站:
Android 4.3增加了一个新的服务类NotificationListenerService,允许您的应用程序在系统发布新通知时接收有关通知的信息。如果您的应用程序当前使用辅助功能服务API来访问系统通知,则应更新您的应用程序以改用这些API。android开发者网站-API描述:访问通知。
通知一直是Android的受欢迎功能之一,因为它们让用户在一个地方看到来自系统各处的信息和更新。现在在Android 4.3中,应用程序可以在获得用户许可后观察通知流,并以任何希望的方式显示通知,包括发送到通过蓝牙连接的附近设备。
您可以通过新的API访问通知,这些API允许您注册通知侦听器服务,并获得用户许可后接收通知,就像它们在状态栏中显示的那样。通知会完全传递给您,包括有关原始应用程序、发布时间、内容视图和样式以及优先级的所有详细信息。您可以评估通知中感兴趣的字段,在您的应用程序中处理或添加上下文,并选择任何希望的方式将其路由显示。
新的API在添加、更新和删除通知时给您回调(因为用户将其解除或原始应用程序撤回),您将能够启动通知或其操作附加的任何意图,以及从系统中解除它,使您的应用程序可以为通知提供完整的用户界面。

当然,这个新监听器的API文档也可以在这个链接中找到。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接