我为GCM消息编译了示例代码。我所做的唯一更改是使用了我在游戏应用程序中使用的相同API密钥和发件人ID。该应用程序在两种设备上都可以运行,因此我可以再次确认没有网络问题,并且可以确认X2实际上可以接收GCM消息。
坏消息是X2仍未收到我的游戏的GCM消息。经过更多研究,我发现当服务器尝试向X2发送GCM消息时(仅适用于我的游戏应用程序),服务器收到ERROR_NOT_located结果。没有这样的错误发送到Xoom。我已确认服务器已成功接收注册ID号。我知道这很难说,但是注册ID在传输过程中不会被破坏。
对于如何从GCM服务器注销设备,我尝试了一些不同的已发布建议,但似乎都没有用。我总是会再次收到相同的注册ID。因此,我完全卸载了游戏,然后将其重新安装在X2上。这迫使它获得一个新的注册ID号,从而解决了该问题。我的游戏现在在两种设备上均可正常运行。我必须假设在调试时,注册ID在游戏和GCM服务器之间以某种方式混淆了。
我只能希望这不会成为常规问题,因为除了卸载应用程序之外,似乎没有成功的修复方法。



