【问题标题】:Get list of devices for which GCM notifications delivery was failed获取 GCM 通知传递失败的设备列表
【发布时间】:2018-12-18 15:03:51
【问题描述】:

我已经实现了一个服务器,它将向安卓设备发送一些警报。对于大多数设备,都会收到通知。但是,很少有设备无法向其发送通知?

我想知道是否有办法获取通知传递失败的此类设备的列表?

GCM 是否提供此数据(通知传递失败的设备列表)?

【问题讨论】:

    标签: android notifications google-cloud-messaging


    【解决方案1】:

    但是,很少有设备无法向其发送通知。

    如果您的设备没有收到通知,请尝试以下workarounds

    • 确保您正确设置了从 Google 收到的 SENDER ID。
    • 确保您的设备已正确注册到 Google 的 GCM 服务。
    • 确保您将推送发送到您从 Google 收到的正确 reg id,并且您没有收到来自 Google GCM 服务的错​​误。
    • 如果您设置delay_while_idle = 1,如果设备处于空闲状态(关闭、离线、锁定屏幕等...),消息将不会到达设备。如果您希望 wakelock permission 有所作为,请将其更改为 delay_while_idle = 0
    • 有时推送需要一些时间,但如果时间过多,就会出现问题。检查您发送的推送的time_to_live 是什么。

    我想知道是否有办法获取通知传递失败的此类设备的列表?

    同样基于此thread,Google 仅提供一些可在 android 开发者控制台上获得的统计数据。这仅显示消息和注册的数量。

    您必须实现自己的数据收集,这可以很容易地完成。您可以记录发送的每条消息的时间和 ID,并让您的 android 客户端向您的服务器报告收到消息的时间。然后,您可以将数据存储在您的服务器上并根据需要进行查询。

    您可以查看此View & diagnose Google Cloud Messaging (GCM) statistics 链接以了解您的 GCM 消息状态。

    【讨论】:

    • 我想知道是否有其他推荐的方法来完成这项工作。我同意你建议的方法,它会给我更多的洞察力,我正在寻找的东西。太感谢了! :)
    • 请注意,GCM 需要 Google Play 服务才能按预期工作。如果未接收消息的设备确实有 Google Play 服务,请在此处提出问题:firebase.google.com/support/contact/bugs-features
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 2019-12-01
    • 2011-07-03
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多