3

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

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

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

4

3 回答 3

1

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

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

于 2013-02-19T10:34:30.310 回答
0

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

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

于 2013-02-19T04:22:10.233 回答
0

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

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

于 2014-12-29T12:34:30.607 回答