如果用户使用第二章中的GCM Client,并用Project Number替换了SEND_ID。
用户的客户端理论上就可以正常工作了。
打开应用后就可以工作了。运行后界面为:
这时会显示设备注册的id,Logcat也会有相应的log打印出来。首先记录下这个registration Id。
测试GCM方法一:
下载服务器端消息发送的测试代码。
https://github.com/yuxiaohui78/Google_Cloud_Messaging/tree/master/GCMSendOnPC
然后将API KEY 和 registration Id替换为自己的,就可以发送消息。
这时手机可以收到服务器端推送过来的消息,如下图。
测试GCM方法二:
由于GCM第三方服务器端支持HTTP方式和 CCS (XMPP)方式与google 的服务器连接,如下面文章介绍。
http://developer.android.com/google/gcm/server.html
我们可以使用HTTP的方式进行测试。HTTP的发送json格式可以参考:
http://developer.android.com/google/gcm/http.html
具体测试方法:
使用http测试网页 https://www.hurl.it/
1.Post内容到:
https://android.googleapis.com/gcm/send
2.Header中必须的两个参数:
Content-Type:application/json Authorization:key=AIzaSyB-1uEai2WiUapxCs2Q0GZYzPu7Udno5aA这里的key就是我们第一章中提到的API KEY。
3.Post body格式为如下
{ "data": { "score": "5x1", "time": "15:10" }, "registration_ids": ["这个值为Client注册时产生的registration id,如果消息希望多个设备都接收到,可以增加多个。"] }data的内部可以使用json的结构,客户端可以接收到完整的结构。data可以传递的消息大小为4k。
对于手机客户端需要处理大量数据的应用,我们这个data可以只带一些通知类数据,告诉手机客户端,服务器有数据更新,需要到服务器端取数据。
对于即时通信类的Message或Email内容,我们可以直接使用消息来携带真实的数据。
Troubleshooting.
有时候发送消息的时候会返回下面的错误 MismatchSenderId 。
。
{ "multicast_id": 9187880810849607000, "success": 0, "failure": 1, "canonical_ids": 0, "results": [ { "error": "MismatchSenderId" } ] }