我有以下问题。我想检测通知栏中何时删除通知。
我可以使用AccessbilityService扫描通知并将其ParcelableData强制转换为通知
Notification notif = (Notification) event.getParcelableData();
我的一个想法是,利用点击通知的PendingIntent,但我找不到任何关于如何检测到的信息。
有什么想法吗?我有点绝望......现在试了几个小时。
答案 0 :(得分:4)
您可以在Notification.Builder上使用setDeleteIntent:
它可以用来做你想做的事情(我想这对你来说太晚了,但它可以帮助别人)
答案 1 :(得分:1)
答案 2 :(得分:1)
据我所知,这是不可能的,除非你有root,但是从昨天发布的android 4.3开始,这是可能的。这里有一些链接:
通知访问权限 - 您的应用现在可以访问并与之互动 发布状态栏通知流。你可以显示 它们以您想要的任何方式,包括将它们路由到附近的蓝牙 设备,您可以根据需要更新和解除通知。
Android 4.3添加了一个新的服务类NotificationListenerService, 允许您的应用接收有关新通知的信息 它们由系统发布。
如果您的应用目前使用辅助功能服务API进行访问 系统通知,您应该更新您的应用程序以使用这些API 代替。
android developer website - API description:
访问通知
通知长期以来一直是受欢迎的Android功能,因为它们 让用户查看整个系统的信息和更新 一个地方。现在在Android 4.3中,应用程序可以观察到的流 具有用户许可的通知并显示通知 以他们想要的任何方式,包括将它们发送到附近的设备 通过蓝牙连接。
您可以通过允许注册的新API访问通知 通知监听器服务并经用户许可,接收 通知,因为它们显示在状态栏中。通知 全部交付给您,包含原始应用程序的所有详细信息, 发布时间,内容视图和样式以及优先级。您可以 评估通知,处理或添加中感兴趣的字段 来自您应用的上下文,并将它们路由以您的任何方式显示 选择。
新API会在添加,更新通知时为您提供回调功能, 并删除(因为用户解雇它或原始 app取消了它)。你将能够启动附加到的任何意图 通知或其操作,以及从系统中删除它, 允许您的应用提供完整的用户界面 通知。
当然还有this link
中新侦听器的API文档答案 3 :(得分:0)
如果你扩展NotificationListener并在回调中做你自己的东西,这是可能的: https://developer.android.com/reference/android/service/notification/NotificationListenerService.html