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