Android 用户通知中的注册 ID 限制

Posted

技术标签:

【中文标题】Android 用户通知中的注册 ID 限制【英文标题】:Registration ID limit in User Notifications of Android 【发布时间】:2015-04-22 12:51:02 【问题描述】:

重新安装或升级应用时,会从 GCM 服务器获取 gcm 注册 ID。当这个 id 添加到 User Notification Key 时,它会是 20 个注册 id 限制的一部分,还是服务器应该注销旧 id 并添加新 id?

【问题讨论】:

【参考方案1】:

一旦 GCM 服务器发布了新的注册 ID,您就可以用它覆盖旧的注册 ID。没有必要再保留旧的了。事实上,您不应该再使用旧的来发送推送通知。如果这样做,它仍然可以工作,但您将在 JSON 响应中返回一个规范 ID。该 ID 是您应该使用的设备的最新注册 ID。看看这里的规范 ID 部分: http://developer.android.com/google/gcm/gcm.html#reg

【讨论】:

对于用户通知,文档 link 说它只会在失败的情况下给出计数,而不是规范 id。我怎么知道哪个 id 失败了? 如果失败,它将返回失败的注册 ID 的数量和注册 ID 本身(查看相同的链接)。这是 JSON 格式: "success":1, "failure":2, "failed_registration_ids":[ "regId1", "regId2" ] failed_registration_ids 数组包含所有失败的注册 ID。如果您在此处获得任何 ID,则可以安全地从您的服务器中删除它们。这些用户很可能卸载了您的应用。如果他们重新安装,应用程序将重新注册他们,他们将获得新的注册 ID。【参考方案2】:

由于用户通知与 GCM 客户端注册的功能不同,因此您需要 remove 附加到此“用户通知密钥”的较早的 RegistrationId,然后使用新的 RegistrationId 调用 add。

【讨论】:

我如何知道要删除哪个 id?规范 id 不会有该映射。我应该在我的服务器上的数据库中将注册 ID 与设备 ID 映射吗?

以上是关于Android 用户通知中的注册 ID 限制的主要内容,如果未能解决你的问题,请参考以下文章

Android:限制通知栏中的通知数量

使用 Facebook ID 向特定用户发送 Parse 推送通知无法在 Android 上运行

如何创建推送通知?代码中的问题。没有得到注册ID

在MFP推送通知中注册用户ID和显示名称

php按钮推送通知android

使用 pushsharp 获取 android 的注册 ID 以进行推送通知