Android Cloud to Device Messaging Framework(三)

Developing and Testing Your Applications

下面是给开发和测试使用C2DM的程序的一些建议:

1.    要开发和测试C2DM程序。你需要在Android2.2的设备上运行和调试这个程序。这个设备包含基本的google服务。

2.    要在真机上面开发和调试,真机必须是Android2.2并且包含Market

3.    要在模拟器上开发和调试,需要下载Android2.2 SDKGoogle APIs by Google IncAndroid API 8。然后建模拟器的时候选择google api 8

4.    如果C2DM对程序是一个至关重要的功能,必须在AndroidManifest.xml里设置android:minSdkVersion=”8”。确保程序装在能使程序正常运行的环境里。

Role of the Third-Party Application Server

在你写一个使用C2DM的程序之前,你必须有一个HTTPS 程序服务器并满足下面的要求:

1.    可以和客户端通信

2.    可以对C2DM服务器发起HTTP请求

3.    可以处理请求并可以按需要排列消息。比如,可以执行指数退避。

4.    可以存储ClientLogin Auth Tokenregistration IDsClientLogin Auth Token包含在发送消息的Postheader里。更多关于ClientLogin,看这里ClientLogin for Installed Applications。服务器端具有存储token的能力并可定期的刷新。

How the Application Server Sends Messages

这一节主要讲第三方程序服务器怎么发送消息到手机上的第三方程序。在第三方程序服务器可以发送消息给程序以前,它必须收到registration ID

要发送消息,第三方程序服务器要发起一个post请求到https://android.apis.google.com/c2dm/send 并包含以下参数:

Field

Description

registration_id

必须参数。手机上的程序发过来的registration ID

collapse_key

必须参数。当手机离线的时候,一个任意的字符串用来处理一组消息,这样的话只有最后一条消息可以到客户端。这是为了避免发送大量的消息到客户端当手机重新在线的时候。不能保证消息的顺序,所以发送到客户端的消息不一定是第三方服务器发送的最后一条。

data.<key>

可选参数。消息。用键值对表达。如果存在,会被作为数据包含在Intent中,对应key。 对于键值对的数目没有限制。但是对总的数据大小是有限制的。

delay_while_idle

可选参数。如果使用,表示当手机闲置的时候,消息不需要立即发送。服务器会等手机重新在线,然后发送每一个collapse_key的最后一条消息。

Authorization: GoogleLogin auth=[AUTH_TOKEN]

必须参数。ClientLogin Auth Token作为header. Cookie必须和ac2dm关联。

服务器响应:

Response

Description

200

Includes body containing:

·         id=[ID of sent message]

·         Error=[error code]

o    QuotaExceeded — sender发送了太多的消息。稍后重试。

o    DeviceQuotaExceeded — 太多的消息发往某个手机. 稍后重试。

o    InvalidRegistration — 缺少或者无效的registration_id. Sender应该停止发送消息到这个手机。

o    NotRegistered —registration_id无效, 比如用户卸载了程序或者关闭了通知。Sender应该停止发送消息到这个手机。

o    MessageTooBig — 消息太大,减少消息的大小。 MissingCollapseKey — 没有collapse key。在请求里包含collapse key

503

表明服务器暂时不可连接. Sender must retry later, honoring any Retry-After header included in the response. Application servers must implement exponential back off. Senders that create problems risk being blacklisted.

401

表明用于验证senderClientLogin Auth Token无效。

Limitations

C2DM有下面的限制:

1.    消息大小的限制:1024bytes

2.    Google限制了sender发送消息的总数和sender发送消息到某个手机的总数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值