Upload
kojiokb
View
3.070
Download
0
Embed Size (px)
Citation preview
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 LibraryAndroid SDK Managerからダウンロードする。
JettyJettyとは
オープンソースの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
GCM sender IDAPI Key
GCMを使うには GCM sender ID と API Key が必要
取得方法は下記を参照。
[公式] GCM: Getting Startedhttp://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 Tutorialhttp://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()参照
これでは面白くないので、メッセージのペイロードやパラメータを簡単に変更してメッセージをプッシュできる環境を構築してみたい。