持久化gcm注册ID

时间:2014-05-13 07:55:48

标签: android google-cloud-messaging

我正在做一个使用gcm的android应用程序。我知道当卸载并重新安装应用程序时,无法保证再次收到相同的注册ID。所以我做的是登录时我采取一个独特的来自应用程序服务器的ID以及每当新的注册ID生成时我都可以在应用程序服务器中替换它。所以我的问题是,我没有使用规范ID替换gcm服务器中的最新注册ID。它会导致任何问题吗?请帮帮我。

2 个答案:

答案 0 :(得分:0)

  

在服务器端,只要应用程序运行良好,   一切都应该正常工作。但是,如果应用程序中存在错误   触发同一设备的多次注册,可能很难   协调状态,你可能会得到重复的消息。

     

GCM可以轻松提供名为“规范注册ID”的工具   从这些情况中恢复。定义了规范注册ID   是您的申请所要求的最后一次注册的ID。   这是服务器在向邮件发送邮件时应使用的ID   设备

     

如果稍后您尝试使用其他注册发送消息   ID,GCM将照常处理请求,但它将包括   规范注册ID在registration_id字段中   响应。确保替换存储在您的注册ID   具有此规范ID的服务器,因为最终您正在使用的ID   停止工作。

来源:http://developer.android.com/google/gcm/adv.html#canonical

答案 1 :(得分:0)

您的解决方案基本上很好,但我不确定您的服务器生成的唯一ID是否与设备或登录用户相关联。如果是前者,请确保将其保留在设备的外部存储设备上,以便在卸载应用时不会丢失。如果是后者,我不确定您是如何处理同一用户登录多个设备的情况。

虽然您的策略有利于维护设备和服务器上的当前注册ID,但您仍应处理来自Google的规范注册ID响应,以确保安全。