這篇專注於流程說明
第三篇在講Server端的實作
第四篇在講Android端的實作
Android C2DM的實作步驟大概分為下列三項:
- Enabling C2DM :在Android Device上啟動C2DM準備receive訊息。
- Sending a message:Server傳遞訊息至Device
- Receiving a message:Android上收來自C2DM Server的訊息
下面是個三項的說明流程,
1. Enabling C2DM
- 首先要先啟動一個registration Intent到C2DM的SERVER (com.google.android.c2dm.intent.REGISTER),且這Intent必須但兩個參數,第一個是SENDER ID,第二個是application ID。參數說明請看這。
- 如果這個registration成功了,C2DM的Server會回傳(broadcast)一個registration ID,這時候Android applicaiton要把這registration ID先存起來,待會用。(Google可能會一段時間就去refresh這個registration ID)
- 完成註冊以及取得resgistration ID以後,Android App必須把此ID傳到自己的server上去。Server一樣得把這ID存起來。
2. Sending a message
- 在send a message之前,必須確認Android app和Sever上已經有 resgistration ID了,以及Sever必須有ClientLogin authorization token. 至於怎麼取得這個token,可以去看Google官網說明
- 完成上面的以後,首先,Sever必須先send訊息至C2DM Sever上
- Google收到以後,會先存起來,以免Android device是inactive的狀態。
- 當Device是online的狀態,Google就會send訊息至device上。
3. Receiving a Message
- 首先Android OS會先收到這則Message,
- 接著Android OS會把這則訊息,會根據package name發送到含有註冊com.google.android.c2dm.intent.RECEIVE的app上去
- 最後,該app就會從自己註冊的RECEIVER的Intent裡收到message,就可以處理資料了。