Cloud To Device Messaging 云端推送服务
Android设备支持C2DM的条件
1. Android 2.2及以上的系统版本;
2. 设备上需要有设置好的Google帐号。
C2DM服务的流程
1. 客户端向云端注册推送id:客户端将注册C2DM服务的帐号(如enterprise@gmail.com,客户端发送的这个帐号都是同一个)发送到C2DM Server进行注册;
2. 客户端得到registration ID:C2DM Server将registration ID反馈给客户端;
3. 客户端向应用服务器登记所获取的registration ID:客户端将用户的帐号唯一标识、registration ID发送到应用服务器,应用服务器将registration ID与用户绑定并存储到服务器中;
4. 用户的资料发生改变,或者有人给用户发送信息;
5. 应用服务器请求C2DM Server向客户端发送消息推送:向C2DM Server发送registration ID、通知信息,请求C2DM Server向客户端推送信息;
6. C2DM Server向客户端推送信息。
客户端实现流程
1. 将成熟的C2DMBaseReceiver、C2DMBroadcastReceiver、C2DMessaging类拷贝到项目中(这3个文件可以从google code中获得);
2. 创建一个C2DMBaseReceiver的子类C2DMReceiver,重载其中的函数
protected void onMessage(Context context, Intent intent) 处理云端推送过来的信息;
public void onRegistered(Context context, String registrationId) 从C2DM Server得到registration ID之后执行的回调函数,用于向应用服务器发送登记行为;
public void onUnregistered(Context context) 从C2DM Server注销之后执行的回调函数。
3. 在AndroidManifest.xml文件中声明应用将用到C2DM推送权限、C2DM Receiver的Service,以及对应的BroadcastReceiver。
参考资料:http://blog.csdn.net/ichliebephone/article/details/6591071