关于设备传输时在Android App中的GCM registrationId

时间:2016-03-11 14:09:18

标签: android google-cloud-messaging

我正在使用GCM开发Android应用程序。

我通过以下代码获得registrationId以发送推送通知,然后将其存储在SharedPreferences中。

registrationId = gcm.register("xxxxx");

当我的应用程序通过备份工具从一台设备传输到另一台设备时,我想每个存储在SharedPreferences中的数据都会被传输。

然后我认为上面的registrationId在新设备中没有活动。

是真的吗?

如果是,那么解决这个问题的最佳方法是什么?

我是否应该始终获取最新的registrationId,然后如果它与SharedPreferences中存储的不同,请重新保存新的?

1 个答案:

答案 0 :(得分:1)

是的,这是真的。 "对于使用Google云消息传递(GCM)进行推送通知的应用,备份Google Cloud Messaging注册返回的注册令牌可能会导致已恢复应用的通知出现意外行为。这是因为当用户在新设备上安装您的应用时,应用必须向GCM API查询新的注册令牌。如果存在旧注册,因为系统已备份并恢复它,应用程序不会寻找新令牌。要防止出现此问题,请从备份文件集中排除注册令牌。" - 来自developers.android.com