gpt4 book ai didi

android - GCM 消息死于 "Accepted."的无声死亡

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:21:48 25 4
gpt4 key购买 nike

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

我们面临着让 GCM 通知始终如一地传送到我们的 Android 应用程序的挑战,并且已经对代码的几乎所有方面进行了检查以发现没有任何问题。然而,许多消息只是在状态 =“已接受”时结束它们的生命。

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

我真的很迷茫。我剩下的两个假设:要么 GCM 的可靠性低于 < 100%,要么我们遇到了一些边缘情况,客户端处于离线状态并且一旦再次激活就不会收到消息。鉴于这种情况,我们还应该检查什么?很抱歉这个模糊的问题……我们不知道我们不知道什么。

最佳答案

我们遇到了同样的问题。

我们的假设是,它们是关闭的设备,并且从那以后一直处于关闭状态。例如,当有人更换手机时,旧设备会关机或电池耗尽。我们仍然保留此设备上的 token ,并且我们的应用程序仍安装在该设备上。我猜 GCM 做同样的事情 - 它无法联系设备并且设备可以随时重新打开,因此 token 不会被视为无效。

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

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

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

关于android - GCM 消息死于 "Accepted."的无声死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34147354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com