保留设备收到的通知

Hold notifications received by device

我希望能够在通知显示给用户之前获得通知,保存它们并在选定的时间显示它们。

我试过 NotificationListenerService 但我只能在它显示后才能收到通知。

有什么办法吗?

还有办法阻止来自特定应用的通知吗?

如果您正在使用 Google 云消息传递 (GCM),您可以保存到数据库或共享首选项并注释掉向用户显示通知的行。然后,您可以使用后台服务随时向用户显示它。

我希望能够在通知显示给用户之前获得通知,保存它们并在选定的时间显示它们。

-> 您可以收到 onNotificationPosted(StatusBarNotification sbn) 到达的通知 您还可以保存它们,并可以通过创建服务并再次构建此通知在您需要的时间显示它们。

我尝试了 NotificationListenerService,但我只能在它显示后才能收到通知。

-> NotificationListenerService 会给你到达的通知信息。您不能阻止通知,但您可以通过从通知堆栈中获取其 ID 或组密钥来删除特定通知。

还有办法阻止来自特定应用的通知吗?

-> 不,你不能阻止通知到达,尽管你可以删除所有通知,就像我上面提到的一样,它们不在你的应用程序列表中。

编辑 所有这些都可以在 API >=19 中完成。

希望对您有所帮助:)

更新@kiturk3 回答:

还有办法阻止来自特定应用的通知吗?

从Lollipop,这可以做到。用户可以阻止来自特定应用程序包的通知

Settings -> Sound and Notification -> Application Notification -> Click on any application -> Select Block

此外,用户可以使用 priority 对特定应用程序通知给予重要性,同时在 Lockscreen

上显示