GCM服务器刷新注册ID的时间频率以及如何在我的手机中获取regId更改事件



GCM服务器在哪个时间频率刷新注册ID。如果它被更改,如何在我的手机中获取regId更改事件?

我的应用程序在第一次启动时在GCM上注册,并将regId Id存储在Sahred Preference文件中。然后它会从共享的Pref中获取regId,并在用户手动完成某个事件时发送到我们的服务器。

我的问题是,如何找到在GCM服务器中刷新的注册Id。然后只有我可以在服务器上创建一个事件来更新reg Id。

当GCM服务器上的注册表更改时,您的服务器负责更新其数据库中的注册表

这是可能的,因为旧的注册表仍然有效(至少一次),并且通过canonical_id告诉您的服务器对使用旧注册表发送的消息的响应,其中将包含您将来应该使用的新注册表。查看开发文档和高级主题以获得完整的解释

请参阅http://developer.android.com/google/gcm/gs.html.

您需要按照本页上的说明将BroadcastReceiver添加到您的应用程序中。然后创建一个GCMIntentService类,该类扩展了GCMBaseIntentService。让该服务将注册ID上传到您的应用服务器(或将其存储在共享首选项中以备以后使用)。

根据http://developer.android.com/google/gcm/client.html#sample-注册,与以前版本的GCM和C2DM不同,谷歌本身不刷新注册。一旦你从初始注册中获得了注册id,你就可以开始了,但有一种情况除外:当用户升级到新版本时,你仍然需要重新注册(这种情况也在上面链接中的示例中处理)。

当应用程序更新时,它应该使其现有的注册ID无效,因为它不能保证使用新版本。因为在更新应用程序时没有调用生命周期方法,所以实现此验证的最佳方法是在存储注册ID时存储当前应用程序版本。

最新更新