参考
Get Project
Google公式のQuickStartアプリで簡単に始めることができる.
サンプルプロジェクトは下記から取得する.
$ git clone https://github.com/googlesamples/google-services.git
cloneしたファイルにあるgoogle-services/android/gcm
がGCM3のサンプル.
Get Configuration file
GCM3.0を使用するためにConfiguration fileの追加が必要.
Configuration fileを得るためのウィザードをGoogleが用意してくれている.
Configuration Fileの取得には作成済みのAndroid Appを求められるが手軽に試すための’Default Demo App’を選択すればAndroid Appを持っていなくても始めることができる.
本稿はApp name:’Default Demo App’, package name: ‘gcm.play.android.samples.com.gcmquickstart’として進める.
ともかくウィザードに従ってconfiguration fileを取得する.
[Choose and configure services]>[ENABLE GOOGLE CLOUD MESSAGING]>[Generate configuration files]>
[Download google-services.json]でconfiguration fileを取得できる.
ダウンロード画面で表示される “Server API Key” と “Sender ID” は覚えておく.
Implementing GCM Client on Android
前述のgoogle-servicesを流用すれば実装の必要はないので本章はskipできる.
既存アプリにGCM3を適用したい場合は下記の要件に注意.
Googleはクライアントコードの作成においてGoogleCloudMessagingAPIの使用とAndroid Studio+Gradleの使用を推奨している.
またAndroidのGCM clientへの要件としては次のものがある.
- Android2.2 or higer(need Google Play Store application. )
- GCMの新機能を使用したい場合はAndroid2.3 or higher
- 3.0以前はGoogleアカウントの設定が必須であったが, 4.0.4以降はGoogleアカウント設定が必須ではなくなった.
4.0.4以降はGoogleへのログインが必要になるケースがある.
GCMはクライアントとサーバ両方実装することを推奨している. サーバの実装についてはAbout GCM Connection Serverを参照.
クライアントコードについてはQuick Start Sampleが参考になる.
Caution!
既存のコードがWakefulBroadcastReceiverを使っているならGCMReceiverとGcmListenerServiceに置き換えることを推奨する.
- AndroidManifest.xmlでは
GcmBroadcastReceiver
を “com.google.android.gms.gcm.GcmReceiver”に置き換え, サービスの継承元をIntentService
からGcmListenerService
に置き換える.BroadcastReceiver
の実装コードを削除する.- IntentServiceのコードをGcmListenerServiceのコードに置き換える.
Add the configuration file
ダウンロードしたconfiguration fileをappモジュール直下に配置する.
Run Application
Configuration fileを追加したならばGCM Quickstartのアプリケーションを実行する.
GCM Quickstartアプリが起動し, DeviceのRegistrationが完了すると”Token retrived and sent to server”のメッセージが表示される.
Sent Google Cloud Message
Quickstartアプリに同梱されているgcmsender
を使ってGCMの動作を確認できる.
gcmsender
モジュールにあるgcm.play.android.samples.com.gcmsender.GcmSender
クラスに定義されているAPI_KEY
を”Get Configuration file”で取得したAPI_KEY
に置き換える.
public class GcmSender {
// public static final String API_KEY = "API_KEY";
public static final String API_KEY = "AIxxxxxxx";
GcmSenderは下記のコマンドで実行できる. argsに好きなメッセージを指定して実行すればデバイスにメッセージが届く.
$ ./gradlew :gcmsender:run -Pargs="hello GCM3."
以上.