2010年9月8日水曜日

Android Cloud to Device Message - C2DM -

ようやく C2DM やってみようかなーと思って、、、

http://android-developers.blogspot.com/2010/08/powering-chrome-to-phone-with-android.html

■C2DMのデモサンプルとして Chrome to Phone というのがあります。

 Google Chrome の Extension として、開いているページの URL を
 端末に送るというデモです。

 上記blogによると、このアプリの流れはこうなっている。

  1. Android アプリが C2DM サービスにレジスト
    → registration ID を取得

  2. Andorid アプリが registration ID とユーザーの
   アカウント名を AppEngine サーバーに送る

  3. AppEngine サーバーはユーザーアカウントを認証し、
   アカウント名と device registration ID のマッピングを保存する

  4. The Chrome Extension は現在のタブのURLとページタイトルを
   AppEngine server にPOSTする

  5. AppEngine サーバーはユーザーを認証し、ユーザー名に対応する
   device registration ID を探す

  6. URL とタイトルを Google's C2DM サーバーに HTTP Post する

  7. Google's C2DM サーバーはメッセージを端末にルーティングし、
   端末で Intent がブロードキャストされる

  8. Android アプリは Intent receiver によって起動する

  9. Android アプリは 新しいIntent(ブラウザやダイアラーや
   Google Maps) を発行して、URL を適切なアプリに渡す


 このアプリでは、特筆すべきデザイン選択として URL や title などのペイロードを push message の一部として送っている。URL のハッシュは、複数のボタンが押されたことによる intent の重複を防ぐための collapse_key として使われている。原則として、URL全体が使われているが、ハッシュはより短くされ、不必要なペイロードデータを公開するのを避けている。

 別のアプローチとして(確かに大きいペイロードには、こっちのほうが望ましい)
アプリケーションを立ち上げるトリガーとして、push message サービスを使う方法がある。アプリケーションが立ち上がった後に、HTTP通信などで out-of-band のペイロードを続けて受信するようにすればよい。


■早速使ってみました

まず、Google Chrome に Chrome to Phone Extension を入れます。

入れると、こんな感じ。「端末+黄色い矢印」のアイコンです。



アイコンをクリックすると、Google Account にログインしていない場合は、
ログインを求められます。

ログインすると、次の Help ページになります。



次に Android 端末の方にアプリを入れます。

上記の Help ページに、「Search for 'Chrome to Phone' in Market on your Android device.」って書いてあったので Android Market で探したのですが見つからない。。。

で、よくよく見たら

Google Chrome to Phone Extension のサイトには

"The Android app is currently only available in English in the following countries: US, Canada, Australia, Great Britain, Ireland, New Zealand, and South Africa. We will be extending to additional countries in the next few weeks."

とあるので、日本はまだみたいです。

そこで、google code から chrometophone-android-v1.7.apk をダウンロードして

> adb install chrometophone-android-v1.7.apk

で端末にインストール

左上のアプリです。



アプリを起動して、初期設定


紐付ける Google Account を選択


アプリが自動的に起動するかどうか選択


おしまい



あとは、端末に送りたいページを表示した状態で Chrome to Phone Extension
のアイコンをクリックすれば、端末のブラウザがかってに立ち上がって
そのページを表示しちゃうんです。おおー。



関連サイト

 ・Google Projects for Android: C2DM (Labs)

 ・上記サイトを丸山先生が翻訳した資料
  #ありがとうございます!

 ・Google Chrome Blog: Instantly zap links, maps and phone numbers to your Android phone with Chrome to Phone!

 ・chrometophone - Project Hosting on Google Code

 ・Google Chrome to Phone Extension - Google Chrome 拡張機能ギャラリー

0 件のコメント:

コメントを投稿