Google Cloud Messaging for Android
            ことはじめ
  サンプルコードを動かしてみる 編
             @kojiokb
サンプルコードを動かす
GCM for Android Libraryにはサンプ
ルコード「gcm-demo」が収録されて
いる。
まずはサンプルコードを動かしてみ
る。

※本ドキュメントの環境はMacですが、Windowsでも適宜読み替えて
いただければ大丈夫かと。
必要なもの
Google Cloud Messaging for
Android Library

Jetty

GCM sender ID・API Key
Google Cloud Messaging
  for Android Library
 Android SDK Managerからダウン
 ロードする。
Jetty
Jettyとは

 オープンソースのJava Servletコン
 テナ・Webサーバ。

サンプルコードのサーバサイドは
Servletで作られている。
Jettyのインストール
http://download.eclipse.org/jetty/ から
今回は8.1.7.v20120910を使用。

展開して適当なディレクトリに配置
今回は/usr/local/以下に配置。

環境変数JETTY_HOMEを設定
export JETTY_HOME=/usr/local/jetty-
distribution-8.1.5.v20120716
 
Jettyの起動・停止
起動

$ <JETTY_HOME>/bin/jetty.sh start


停止

$ <JETTY_HOME>/bin/jetty.sh stop
Jettyの起動確認
ブラウザから下記のURLにアクセス
http://localhost:8080
GCM sender ID
        API Key
GCMを使うには GCM sender ID と API Key が必要

取得方法は下記を参照。

[公式] GCM: Getting Started
http://developer.android.com/guide/google/gcm/gs.html

[日本語訳] GCMをはじめよう(ソフトウェア技術ドキュメン
トを勝手に翻訳)
https://sites.google.com/a/techdoctranslator.com/jp/
android/guide/google/gcm/gs
サンプルコード
サンプルコード「gcm-demo」は下記に


<SDK-Root>/extras/google/gcm/samples/


・gcm-demo-client -> Androidアプリ
・gcm-demo-server -> Servlet
・gcm-demo-appengine -> GAE


今回はAndroidアプリとServletを使う。
 
Servlet
チュートリアルを参照
[公式] Demo App Tutorial
http://developer.android.com/guide/google/gcm/demo.html
※ Setting Up the Server -> Using a standard web server

[日本語訳] デモアプリのチュートリアル(ソフトウェア技術ドキュメントを勝
手に翻訳)
https://sites.google.com/a/techdoctranslator.com/jp/android/guide/
google/gcm/demo

必要な手順
1. api.keyファイルに取得したAPI Keyを設定
2. antでビルドしてwarファイルを作成
3. warファイルを<JETTY_HOME>/webapps/に格納
Androidアプリ
公式チュートリアルはEclipseを使わない手順になっている
ので今回は参照しない

必要な手順
1. Eclipseにインポート
2. CommonUtilities.javaを修正
 - SERVER_URL
  <開発PCのIPアドレス>/gcm-demoを設定
 - SENDER_ID
  取得したGCM sender IDを設定
 
動かしてみる
動かす前に

エミュレータで動かす場合
Google APIのエミュレータが必要

実機で動かす場合
開発PCと実機が同じLANの下にいるこ
と
 
動かしてみる
Jettyを起動

ブラウザから下記のアドレスにアクセス
http://localhost:8080/gcm-demo/home




 
動かしてみる
端末アプリを起動


起動するとGCMの
登録処理が開始され
る。


登録が成功すると右
の画面になる。
動かしてみる
サーバサイドで登録成功を確認。
ブラウザをリロードする。
端末の登録が成功すると下記の画面になる。




 
動かしてみる
メッセージを送ってみる。
Send Messageボタンをクリック。
送信が成功すると下記の画面になる。




 
動かしてみる
メッセージの受信


受信が成功すると
- 通知エリア
- アプリ画面内
にメッセージが表示
される。
まとめ
サンプルコードを動かしてみて

GCMを使うにはサーバサイドの知
識が必要。

公式のAPI Guideの情報は有用。
最後に
サンプルコードを読んでみて

 Servletはペイロードが空のメッセージを送っている。
 - SendAllMessagesServlet#doPost()参照

 Androidで表示されるメッセージはAndroidアプリ側
 で定義されたもの。
 - GCMIntentService#onMessage()参照

これでは面白くないので、メッセージのペイロードやパ
ラメータを簡単に変更してメッセージをプッシュできる
環境を構築してみたい。

Google Cloud Messaging for Android ことはじめ(サンプルコードを動かしてみる編)