关于android实现推送方式解决方案我想大家已经不会觉得陌生了,如果大家有兴趣,可以了解以下四个解决方案:
1. C2DM(Android Cloud to Device Messageing) 云端推送功能
Android从2.2版本开始添加了Cloud to Device Messaging(C2DM)框架,在系统中支持了Push的功能,这对于需要用到Pash功能的开发者来说是一个好消息,但是C2DM有以下几个制约要求:
<1>设备需要Android2.2及以上的系统版本
<2>使用D2DM功能的Android设备上需要添加Google账户
<3>需要注册使用C2DM功能的用户邮箱账号
<4>依赖于Google官方提供的C2DM服务器(这是主要的制约因素,由于国内的网络环境,这个服务可用的情况少之又少,而且要想很好地使用C2DM,最好APP Server还要在国外) 。
由于国内的网络环境,C2DM在国内不太推行,目前谷歌已经推出Google Cloud Messaging(GCM)来取代C2DM了,如果大家想要对C2DM深入了解,可用自己去查查资料。
2. XMPP(The Extensible Messaging and Presence Protocol)协议
XMPP协议也叫可拓展通讯和表示协议,是用于即时消息和在线现场探测的一种基于XML协议。其实上述所说到的C2DM服务器底层也是采用XMPP协议进行封装的,而XMPP又是类似于http的一种数据传输协议,XMPP在国内开发者的使用中还是不少的。
3. MQTT协议
MQTT协议是一个轻量级的消息发布/订阅协议。在目前看来,也算是移动终端实现消息推送的优先解决方案。
4. RSMB(Really Small Message Broker)协议
RSMB是一个简单MQTT代理,缺省打开1883端口,在应用程序当中接收来自服务器的消息并传送给指定的设备,大家可以在这里了解一下RSMB:https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=d5bedadd-e46f-4c97-af89-22d65ffee070
关于Android端实现消息推送功能各个协议的优缺点比价大家可以查看这个链接:
http://blog.csdn.net/shagoo/article/details/7899466
好了,言归正传,现在开始测试Google官方的GCMDemo,为了测试这个小demo,着实费了不少功夫,期间遇到一些错误,在国内可参考的资料寥寥无几,Google Group上倒是也有些资料,但由于国内网络环境,想打开诸如此类的网页,还需要个人做一些操作。。。
这是google提供的GCM官方文档,大家可以去看看,跟着操作一下:http://developer.android.com/google/gcm/demo.html
前期准备工作:
(1)创建项目,并且记录下Project Nunber和ApiKey。
在这里(https://code.google.com/apis/console) 创建你的Google项目(如果已经存在,可以跳过这一步)