GCM有时会在同一台设备上工作吗?

时间:2014-03-02 03:30:14

标签: php android google-cloud-messaging

我使用gcm在android中创建聊天应用。一切正常,发送和接收来自模拟器和设备的消息,直到我遇到问题。

问题是我尝试了2个设备,第一个设备三星Galaxy gio和第二个设备galaxy ace ..

第一天我尝试成功发送从ace到gio的消息并收到消息,但是从gio到ace我什么都没得到。

第二天我再次遇到我的gcm的奇怪问题,我从gio发送成功消息给Ace并收到消息,但是从Ace到gio我什么都没得到......问题第二天是<第一天强烈>相反,为什么我会遇到这样的问题?在gcm显示成功发送消息的结果但在设备中没有收到任何消息。我可以解决这个问题吗?

感谢

1 个答案:

答案 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设备进行“点对点”通信,则应在它们之间同步这些数据。