最近在网上查了关于不少Android消息推送的资料,其中主要有四种方法。html
1) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spark + Smack) 3) 使用MQTT协议 4) 使用HTTP轮循方式java
以上这四种方法的优缺点你们均可以到网上搜到,这里提供一个参考的链接:http://blog.csdn.net/shagoo/article/details/7899466 在这里我将使用GCM服务(Google Cloud Messaging)来实现Android消息的推送。 注:本人已实现该推送功能,不过有些限制条件。android
Google Cloud Messaging推送消息流程:这里我就稍微提下,咱们从本身的服务器上发送消息到google的服务器上,在经过google的服务器推送出去,具体的实现细节我也不深究了,也许有人就会问为何要经过google的服务器推送呢,直接从本身的服务器上推送过去就行了;在此以前我也考虑过,但是中间有太多的实现细节,说实话楼主也不是很懂,因此也就妥协了.....web
实现该推送功能的必备条件: 1)你的SDK须要从SDK Manager里安装Google Cloud Messaging for Android Library,安装步骤:启动SDK Manager->Extras->勾选Google Cloud Messaging for Android Library这一项,而后安装就能够了。 2)你用来调试的模拟器或是真机必须支持Google APIs,好比说你用模拟器调试的话,在新建模拟器的时候“target”这一项要选择Google APIs,版本要高于2.2。 3)gcm.jar文件,等你执行完第一步的时候,你就能够在你的Android SDK目录下的extras\google\gcm\samples\gcm-demo-client\libs目录里找到这个文件,把它复制到你的项目的libs目录下,并添加路径。 4)你的模拟器或是真机必须设置而且登入一个google帐户,好比你在调试的时候出现ACCOUNT_MISSING错误提示,说明就是没有登入google的账号。 5)你的耐心。。。。。。 6)若是前面五点你都具有了,请往下看.......编程
下面我将一一介绍我实现的步骤: 1. 注册用户,获得Project Number和APP key,Project Number就是咱们在后面编程时候所要用到的SENDER_ID 。开启Google Cloud Messaging for Chrome服务。浏览器
a) 注册完后点击左侧的Overview后,咱们在右边就能够看到Project Number,如上图。服务器
b) 一样,咱们点击左边的API Access就能够看到API key,如上图红线的地方;若是你没有API Key,你能够点击红线部分的“Create new Server key...”来建立一个API key。app
c) 其次咱们要开启Google Cloud Messaging for Android服务,点击页面左边的“Services”,在右边的下面咱们就能够找到Google Cloud Messaging for Android项,开启它。以下图。编辑器
2.如今咱们就要创建本身的服务器了(PS:别听到服务器就惧怕,这里只是创建一个小小的网站式服务器)。官网有两种方式简历服务器,我采用的是App Engine for Java这个方法,具体能够参考:http://developer.android.com/google/gcm/demo.html。 这里我讲讲我是怎用App Engine for Java创建发送消息的服务器的。APP Engine for Java的下载地址: App Engine for Java a)在你安装Google Cloud Messaging for Android Library后,你的Android SDK目录下有一个extras/google/目录,其中包含的目录有gcm-client, gcm-server, samples/gcm-demo-client, samples/gcm-demo-server和samples/gcm-demo-appengine. b)进入samples/gcm-demo-appengine/src/com/google/android/gcm/demo/server/这个目录,找到ApiKeyInitializer.java这个文件,用文本编辑器打开,找到replace_this_text_by_your_Simple_API_Access_key这句话,并用你的注册时获得的APP key替换它,保存。 c)打开dos窗口,开始->运行,在dos窗口下进入 samples/gcm-demo-appengine目录,在dos中输入ant -Dsdk.dir=D:\appengine-java-sdk runserver -Dserver.host=192.168.1.10 注:这里的-Dsdk.dir=D:\appengine-java-sdk要根据本身的实际状况来,-Dsdk.dir就是你存放appengine-java-sdk的目录,而-Dserver.host就是你本身电脑的IP。 d)以上步骤你都没出错的话,就能够打开浏览器输入:http://192.168.1.10:8080/home若是出现的界面和一下的图片同样说明你已经配置成功,能够开始写Android的客户端了。oop