android推送學(xué)習(xí)——google的C2DM

                   在開發(fā)Android和iPhone應(yīng)用程序時(shí),我們往往需要從服務(wù)器不定的向手 機(jī)客戶端即時(shí)推送各種通知消息,iPhone上已經(jīng)有了比較簡單的和完美的推送通知解決方案,可是Android平臺上實(shí)現(xiàn)起來卻相對比較麻煩,最近利用 幾天的時(shí)間對Android的推送通知服務(wù)進(jìn)行初步的研究。
          在Android手機(jī)平臺上,Google提供了C2DM(Cloudto Device Messaging)服務(wù)。

          Android Cloud to Device Messaging (C2DM)是一個(gè)用來幫助開發(fā)者從服務(wù)器向Android應(yīng)用程序發(fā)送數(shù)據(jù)的服務(wù)。該服務(wù)提供了一個(gè)簡單的、輕量級的機(jī)制,允許服務(wù)器可以通知移動(dòng)應(yīng)用程序直接與服務(wù)器進(jìn)行通信,以便于從服務(wù)器獲取應(yīng)用程序更新和用戶數(shù)據(jù)。C2DM服務(wù)負(fù)責(zé)處理諸如消息排隊(duì)等事務(wù)并向運(yùn)行于目標(biāo)設(shè)備上的應(yīng)用程序分發(fā)這些消息。

          使用C2DM框架的要求
          1. 需要Android2.2及以上的系統(tǒng)版本
          2. 使用C2DM功能的Android設(shè)備上需要設(shè)置好Google的賬戶。
          3.  C2DM需要依賴于Google官方提供的C2DM服務(wù)器,由于國內(nèi)的網(wǎng)絡(luò)環(huán)境,這個(gè)服務(wù)經(jīng)常不可用,如果想要很好的使用,我們的App Server必須也在國外,這個(gè)恐怕不是每個(gè)開發(fā)者都能夠?qū)崿F(xiàn)的

          要使用C2DM來進(jìn)行Push操作,基本上要使用以下6個(gè)步驟


          (1)注冊:Android設(shè)備把使用C2DM功能的用戶賬戶(比如android.c2dm.demo@gmail.com)和App名稱發(fā)送給C2DM服務(wù)器。

          (2)C2DM服務(wù)器會(huì)返回一個(gè)registration_id值給Android設(shè)備,設(shè)備需要保存這個(gè)registration_id值。

          (3)Android設(shè)備把獲得的registration_id和C2DM功能的用戶賬戶(android.c2dm.demo@gmail.com)發(fā)送給自己的服務(wù)器,不過一般用戶賬戶信息因?yàn)楹头?wù)器確定好的,所以不必發(fā)送。

          這樣Android設(shè)備就完成了C2DM功能的注冊過程,接下來就可以接收C2DM服務(wù)器Push過來的消息了。

          (4)服務(wù)器獲得數(shù)據(jù)。這里圖中的例子Chrome To Phone,服務(wù)器接收到Chrome瀏覽器發(fā)送的數(shù)據(jù)。數(shù)據(jù)也可以是服務(wù)器本地產(chǎn)生的。這里的服務(wù)器是Google AppEngine(很好的一項(xiàng)服務(wù),可惜在國內(nèi)被屏了),要換成自己的服務(wù)器。服務(wù)器還要獲取注冊使用C2DM功能的用戶賬戶(android.c2dm.demo@gmail.com)的ClientLogin權(quán)限Auth。

          (5)服務(wù)器把要發(fā)送的數(shù)據(jù)和registration_id一起,并且頭部帶上獲取的Auth,使用POST的方式發(fā)送給C2DM服務(wù)器。

          (6)C2DM服務(wù)器會(huì)以Push的方式把數(shù)據(jù)發(fā)送給對應(yīng)的Android設(shè)備,Android設(shè)備只要在程序中按之前和服務(wù)器商量好的格式從對應(yīng)的key中獲取數(shù)據(jù)即可。

          轉(zhuǎn)自:

          posted on 2011-12-29 17:57 胡鵬 閱讀(1176) 評論(0)  編輯  收藏 所屬分類: android

          導(dǎo)航

          <2011年12月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          統(tǒng)計(jì)

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          agile

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 沐川县| 奈曼旗| 合作市| 屏南县| 遵义市| 临夏市| 西林县| 文登市| 保靖县| 甘孜县| 兴安盟| 南昌县| 剑河县| 平凉市| 锦州市| 井陉县| 体育| 元江| 泗水县| 拜泉县| 平泉县| 宜宾市| 广昌县| 工布江达县| 章丘市| 五峰| 仙桃市| 玛多县| 奉新县| 永仁县| 乾安县| 临清市| 城固县| 锦州市| 漳平市| 新丰县| 巫山县| 祁东县| 高密市| 景德镇市| 浠水县|