如果用户在应用程序设置中关闭推送通知,如何以编程方式检查? 我可以直接从应用打开应用设置 Intent 以提示用户打开它吗?
谢谢
最佳答案
假设您指的是 Google Cloud Messaging(因为您使用的是 android 和 push-notification 标签),没有用于启用/禁用 GCM 服务的常规设置(与 iOS 设备的 Apple Push Notifications 服务不同)。
当您安装应用程序时,如果该应用程序使用 Google 云消息传递,它将列在该应用程序运行所需的权限列表中。选择安装该应用即表示您允许它向您发送推送通知。
也就是说,为了让应用程序真正接收 GCM 消息,您的应用程序必须以编程方式注册到 GCM 服务。您可以在您的应用程序中的任何地方执行此操作,并且您可以创建一个 app settings
Activity (或 fragment 或其他),用户可以在其中启用/禁用 GCM(这将触发注册/注销到/从 GCM)。您的应用程序可以包含一个永久存储区,该存储区将保存您在注册 GCM 时收到的注册 ID,您可以使用该存储区来确定您的应用程序是否已注册到 GCM。
如果应用程序已经在运行(如果您有一些代码可以做到这一点),您可以要求您的用户将其打开。如果它没有运行并且该应用程序未在该设备上注册 GCM,则您的服务器无法向其发送 GCM 消息。
如果您想克服这个障碍,您可以自动注册到 GCM(当应用程序首次启动时)。然后,您可以随时向应用程序发送消息。如果您仍想让用户决定他们是否要查看这些通知,您可以在您的应用程序设置中设置一个标志,以启用/禁用您创建的作为传入 GCM 消息结果的 UI 通知。 GCM 服务将始终启用,但除非用户选择查看通知,否则当 GCM 消息到达时,您的应用不会显示任何内容。
关于Android - 推送通知是否开启?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16912629/