我使用gcm在android中创建聊天应用。一切正常,发送和接收来自模拟器和设备的消息,直到我遇到问题。
问题是我尝试了2个设备,第一个设备三星Galaxy gio和第二个设备galaxy ace ..
第一天我尝试成功发送从ace到gio的消息并收到消息,但是从gio到ace我什么都没得到。
第二天我再次遇到我的gcm的奇怪问题,我从gio发送成功消息给Ace并收到消息,但是从Ace到gio我什么都没得到......问题第二天是<第一天强烈>相反,为什么我会遇到这样的问题?在gcm显示成功发送消息的结果但在设备中没有收到任何消息。我可以解决这个问题吗?
感谢
答案 0 :(得分:0)
由于这种不一致的行为,我认为您的问题是更新注册ID。 GCM服务器有时会使注册ID无效,您必须从设备更新它。这是如何:
更新应用程序时,应使其现有文件无效 注册ID,因为它不能保证与新版本一起使用。 因为应用程序没有调用生命周期方法 更新,实现此验证的最佳方法是存储 存储注册ID时的当前应用程序版本。然后 启动应用程序时,将存储的值与 当前的应用版本。如果它们不匹配,则使其无效 存储数据并再次开始注册过程。
在此处阅读更多内容:http://developer.android.com/google/gcm/adv.html#reg-state
关于如何实施客户:http://developer.android.com/google/gcm/client.html
服务器端:http://developer.android.com/google/gcm/http.html
请注意,如果您没有第三方服务器,并且您的应用程序正在与其他Android设备进行“点对点”通信,则应在它们之间同步这些数据。