我正在构建一个使用 c2dm 的应用。
我认为我应该在我的应用程序的主要“Intent ”启动时请求注册 ID。我一直在这样做,但似乎每个请求都会产生一个新的字符串,所以我最终在我的数据库中为同一台设备堆积了大量的注册 ID。我认为其中只有一个会起作用。但是,我不想只删除旧的,因为我希望我的用户能够在拥有多台设备的情况下在多台设备上接收通知。
我该如何处理?
最佳答案
在您的应用安装到您的设备上之前,切勿刷新 ID
我已经实现了 C2DM。如果您的一台设备有多个注册 ID,则只有最新的 ID 才可用于发送通知。
当您将设备注册到谷歌服务器时,它会生成一个与该设备 ID 相对应的字符串(如您所知)。但是如果您再次使用同一设备注册,则之前的设备将无用。
所以我会建议更好地保留设备已注册或未注册的信息。如果已注册,则无需再次重新注册。因为您会收到基于旧 R_ID 的通知。只需将此 R_ID 发送到您的服务器以进行通知,并将标志保存在您的数据库中以跟踪注册
关于Android C2DM 注册 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6146018/