首页 文章

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

提问于
浏览
3

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

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

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

3 回答

  • 0

    当regid在GCM服务器上更改时,则为 your server which is responsible for updating the regid in its database.

    这是唯一可能的,因为旧的regid仍然有效(至少一次),并通过 canonical_id 告诉您的服务器对旧的regid发送的消息的响应,其中包含您将来应该使用的新regid . 请查看dev docsadvanced topics以获取完整说明

  • 0

    http://developer.android.com/google/gcm/gs.html .

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

  • 1

    根据http://developer.android.com/google/gcm/client.html#sample-register,与先前版本的GCM和C2DM不同,Google本身不会刷新注册 . 一旦你从初始注册获得注册ID就可以了,除了一个案例:当用户升级到新版本时你还需要重新注册(这个案例也在上面链接的例子中处理) ) .

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

相关问题