我刚刚开始使用Google Cloud Messaging并阅读User Notifications。 根据此链接,将立即通知特定用户拥有的所有设备。
在我的情况下,特定用户由他/她的user_id标识,数据库将如下所示:
[user_id] [gcm_registration_id]
根据演示,在应用程序端,此registration_id存储为持久数据。
如果用户卸载应用程序且持久数据消失,会发生什么?
用户重新安装应用后,是否会为同一设备上的相同应用获得相同的注册ID?
Google会在一段时间后使这些注册ID无效吗?
答案 0 :(得分:1)
我会在同一个app上获得相同的registration_id 设备一旦用户重新安装应用程序?
YES。注册有两种情况。您的应用将注册或Google刷新注册ID。所以在任何一个案件执行之前你都可以使用旧的注册表。
谷歌在任何情况下都会使这些registration_ids无效 时间?
YES。 Google会刷新注册ID。 GCM为您提供有关处理更新的注册ID的想法。
处理客户端的更新ID
如果注册成功,GCM服务器会广播com.google.android.c2dm.intent.REGISTRATION
意图,为Android应用程序提供注册ID。
Android应用程序应存储此ID以供以后使用(例如,检查onCreate()
是否已注册)。 请注意,Google可能会定期刷新注册ID,因此您应该设计Android应用程序,并了解 com.google.android.c2dm.intent.REGISTRATION
意图可能是多次召唤。您的Android应用程序需要能够做出相应的响应。
答案 1 :(得分:1)
实际上你接受的答案并不完全正确。
我测试了在设备上卸载和重新安装应用的情况,在某些情况下,您可以获得不同的注册ID。
有两种情况:
NotRegistered
错误(我相信您只会从发送的第二条消息中收到该错误)。