如何处理 GCM 更改注册 ID?
Posted
技术标签:
【中文标题】如何处理 GCM 更改注册 ID?【英文标题】:How to handle GCM changing the registration Id? 【发布时间】:2012-12-03 18:36:12 【问题描述】:我想知道如果 GCM 服务器决定刷新应用程序先前从 GCM 服务器检索的registrationId,应用程序/设备将如何得到通知。 目前,我保存第一个检索到的 registrationId 并将其保存在数据库中并将此 registrationId 发送到应用服务器。因此,从下次开始,App 将不再与 GCM 服务器对话。 在这种情况下,App 永远不会知道 GCM 服务器是否更改了registrationId。谷歌文件建议处理此案,但未提及应采取哪些步骤。 来自 Google 的引述 -
虽然 com.google.android.c2dm.intent.REGISTRATION 意图通常在应用程序发出请求后收到,Google 可能会定期刷新注册 ID。所以应用程序必须随时准备处理它。
任何建议都会有所帮助,
谢谢, SKU
【问题讨论】:
我绝对知道如何做到这一点,但由于某种原因,谷歌的 GCM 文档现在已关闭,哈哈。 【参考方案1】:旧的 reg id 会继续工作一段时间,但 Google 会在响应的 canonical_id 字段中发送一个新的以供将来使用。
【讨论】:
你的意思是应用服务器应该得到一个新的 regId 的响应吗?它与设备的通信方式相同吗? 应用服务器只会与 GCM 服务器直接通信,然后将消息传递给设备(我们希望如此)。如果您在消息中发送 regid 并且 GCM 服务器决定更改 regid,那么将来要使用的新 regid 会在响应的 canonical_id 字段中返回。网站恢复后查看开发文档。 这对GoogleCloudMessaging API 仍然有效吗? 据我所知,是的。我认为新的 API 只是提供了一种更方便的方法来注册和查找 regid 是什么,以便您可以将其存储在您的服务器上。以上是关于如何处理 GCM 更改注册 ID?的主要内容,如果未能解决你的问题,请参考以下文章