【问题标题】:GCM messages die a silent death of "Accepted."GCM 消息死于“已接受”。
【发布时间】:2015-12-08 03:15:18
【问题描述】:

概念问题,如果您不介意的话。

我们面临着让 GCM 通知始终如一地传送到我们的 Android 应用的挑战,并且几乎在代码的所有方面都进行了测试,没有发现任何问题。然而,许多消息只是简单地以 status = “Accepted”结束他们的生命。

我可以确认正确的 gcm_token 已打包并通过 POST 发送到 https://gcm-http.googleapis.com/gcm/send,并且大部分(但不是全部)都已收到。我可以确认 GCM 帖子正在接收这些消息的所有 gcm_token,因为我们正在记录生成的 message_ids。但是 message_id 并不总是转化为呈现的通知。 FWIW:我们不会覆盖 delay_while_idle 的默认设置,并且 time_to_live 设置为 1 天。

我真的很茫然。我剩下的两个假设:要么 GCM 实质上低于

【问题讨论】:

  • 你得到答案了吗?我遇到了同样的问题,我很确定所有未交付的设备都没有关闭。

标签: android google-cloud-messaging


【解决方案1】:

我们遇到了同样的问题。

我们的假设是,它们是从那以后一直关闭并一直关闭的设备。例如,当有人更换手机时,旧设备会关闭或电池没电。我们仍然持有这个设备上的令牌,我们的应用程序仍然安装在它上面。我猜 GCM 也是如此 - 它无法联系设备,并且可以随时重新打开设备,因此不会将令牌视为无效。

观察到我们有越来越多这样的代币(在过去的几个月里),这一假设得到了加强。这与人们拥有我们应用程序的越来越多的旧设备被替换和关闭的事实是一致的。这也与 Google Play 仪表板中的 GCM 消息图表一致 - 存储的通知数量随着时间的推移而增加。

几个月后我也打开了我的旧手机,收到了很多以前被接受的通知。这些是 GCM 存储了 4 周的通知(我们不使用time_to_live 标志)并且在我的手机离线时无法发送。

关于这个主题的文档很少,但最好的可能是https://developers.google.com/cloud-messaging/concept-options#lifetime

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 2013-02-12
    相关资源
    最近更新 更多