android推送学习——google的C2DM

在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手 机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,可是Android平台上实现起来却相对比较麻烦,最近利用 几天的时间对Android的推送通知服务进行初步的研究。 在Android手机平台上,Google提供了C2DM(Cloudto Device Messaging)服务。

Android Cloud to Device Messaging (C2DM)是一个用来帮助开发者从服务器向Android应用程序发送数据的服务。该服务提供了一个简单的、轻量级的机制,允许服务器可以通知移动应用程序直接与服务器进行通信,以便于从服务器获取应用程序更新和用户数据。C2DM服务负责处理诸如消息排队等事务并向运行于目标设备上的应用程序分发这些消息。

使用C2DM框架的要求
1. 需要Android2.2及以上的系统版本
2. 使用C2DM功能的Android设备上需要设置好Google的账户。
3. C2DM需要依赖于Google官方提供的C2DM服务器,由于国内的网络环境,这个服务经常不可用,如果想要很好的使用,我们的App Server必须也在国外,这个恐怕不是每个开发者都能够实现的

要使用C2DM来进行Push操作,基本上要使用以下6个步骤


(1)注册:Android设备把使用C2DM功能的用户账户(比如android.c2dm.demo@gmail.com)和App名称发送给C2DM服务器。

(2)C2DM服务器会返回一个registration_id值给Android设备,设备需要保存这个registration_id值。

(3)Android设备把获得的registration_id和C2DM功能的用户账户(android.c2dm.demo@gmail.com)发送给自己的服务器,不过一般用户账户信息因为和服务器确定好的,所以不必发送。

这样Android设备就完成了C2DM功能的注册过程,接下来就可以接收C2DM服务器Push过来的消息了。

(4)服务器获得数据。这里图中的例子Chrome To Phone,服务器接收到Chrome浏览器发送的数据。数据也可以是服务器本地产生的。这里的服务器是Google AppEngine(很好的一项服务,可惜在国内被屏了),要换成自己的服务器。服务器还要获取注册使用C2DM功能的用户账户(android.c2dm.demo@gmail.com)的ClientLogin权限Auth。

(5)服务器把要发送的数据和registration_id一起,并且头部带上获取的Auth,使用POST的方式发送给C2DM服务器。

(6)C2DM服务器会以Push的方式把数据发送给对应的Android设备,Android设备只要在程序中按之前和服务器商量好的格式从对应的key中获取数据即可。

转自: http://blog.csdn.net/ichliebephone/article/details/6591071

更多相关文章

  1. 【monkeyrunner】monkeyrunner 的API
  2. Android分区详解:boot, system, recovery, data, cache 以及 misc
  3. Android开源:数据库ORM框架GreenDao学习(二)数据库查询篇
  4. 《一》Android(安卓)数据库 SQlite SQLiteOpenHelper
  5. Android实现手机和电脑间的UDP网络通信
  6. Android(安卓)SQLiteOpenHelper源码解读
  7. 《android中对camera数据的简单编码处理》
  8. 一套完善的Android异步任务类
  9. Android(安卓)蓝牙开发基本流程

随机推荐

  1. android内核编译方法 转载
  2. Android的JNI实现基础
  3. android获得设备信息
  4. Android--把文件发送给另一个设备
  5. cocos2dx3.0 build_native.sh 需要这些环
  6. android 相对布局覆盖问题
  7. android 弹出窗口
  8. editText设置最大长度
  9. android manifest.xml中元素含义
  10. Android TextSwitcher的使用