我希望能够根据需要从我的Android应用获取有效通知。 (实际上我只需要知道是否有)
我一直在寻找这种行为,似乎我只有两个选项:NotificationManager.getActiveNotifications()
这正是我需要的,但只能从SDK 23或使用NotificationService
获得,但我真的不喜欢这个解决方案,因为我必须向我的应用程序提供读取所有通知的权限,这绝对是一种过度杀伤力。
是否有人知道任何行为类似于NotificationManager.getActiveNotifications()
并且不需要SDK> = 23的解决方案?
提前致谢!
答案 0 :(得分:1)
您知道您提出了哪些通知,因为您的代码提出了它们。
理论上,您可以通过使用 setDeleteIntent()
注册 PendingIntent
来了解用户何时清除了该通知,从而知道哪些通知已被删除。我已经有一段时间没有使用它了,所以它可能不像以前那样工作了。
但是,如果您知道自己提出了哪些通知,并且知道哪些通知已被清除,那么了解哪些通知仍未完成就需要记账了。
老实说,“什么是活动通知?”感觉像代码气味。问这个问题可能有很好的理由。如果我们是队友,而且这是代码审查的一部分,我会问为什么我们关心任何给定的通知是否处于活动状态。
而且,在这一点上,API 级别 23 (Android 6.0) 已经有 6 年的历史了。考虑到 Android 5.x 和旧设备上仍存在的所有安全问题,您真的应该重新考虑是否应该支持旧版本的 Android。
答案 1 :(得分:0)
在我的项目中,我使用静态数组来保存所有待处理的通知。 当应用程序进入前台时,将清除此数组。 感谢。