注册ID无理由变为“未注册”

在四月份 ,我们已经开始收到很多' NotRegistered '错误。 根据谷歌文档,它应该只发生在应用程序被卸载或更新,但在我们的情况下,令牌可以在40分钟内“ 过期 ”,即使设备没有任何事情发生。

什么让事情甚至值得的是,如果让我们说reg_id_1 “过期”,服务器返回“ NotRegistered ”错误 – 我们推客户端再次注册,但GCM提供相同的令牌“NotRegistered”。 应用程序更新没有帮助。 只有重新安装或用户重置(Android用户)的帮助。

所以问题是 – 有没有人遇到同样的问题和/或有一些解决scheme?

PS我想知道,它可以连接到4月ClientLogin关机,并在Google服务器上出现问题吗? https://plus.google.com/+GoogleDevelopers/posts/RK1pw9Cy4Sd

UPD请参阅Google的回应

  • https://groups.google.com/forum/#!msg/android-gcm/vkj_ph7vqRQ/b_Kq283wXUQJ

Solutions Collecting From Web of "注册ID无理由变为“未注册”"

为什么在服务器上发生这个错误可能有几个原因

  • 应用程序已卸载
  • ID到期。 在此之前,您会在服务器上通知您应该重新注册注册。
  • 用户更改他们的谷歌帐户,他们发送新的ID
  • 更新到您的应用程序导致一个新的ID,旧的到期。

最好从你的数据库中删除这些死ID,并停止在那里发送消息。

看看这篇文章 。 虽然有些信息是矛盾的,但还有很多有用的非文件资料。

实际答案是https://groups.google.com/d/msg/android-gcm/vkj_ph7vqRQ/b_Kq283wXUQJ

这个问题是在特定的configuration下触发的(应用程序被安装在同一个设备上的多个androidconfiguration文件中)以及特定的事件组合。 这个问题只有非常有限的注册ID,并且再次调用gcm.register()将恢复破损注册ID的有效性。