GCM のクライアントのテスト。
ADT 導入済みの Eclipse で、Android SDK Manager を起動して Extras→Google Cloud Messaging for Android Library をインストールする。
そしたら、SDK Path(うちの場合は C:\usr\local\adt-bundle\sdk)\extras\google\gcm\samples の下に gcm-demo-client というクライアントのサンプルプログラムができているので、これを Eclipse でビルド&実行する。
手順としては、「Android アプリケーション・プロジェクト」を gcm-demo-client とか適当な名前で作成し、libs、res、src ディレクトリの中は一旦全部削除して、SDK Path\extras\google\gcm\samples\gcm-demo-client の中身で上書きするっていう具合にしてるんだけど、もっとサンプルソースをプロジェクトに組み込む良いやり方があるのかね?
これで、プロジェクトの実行を行なうと、USB 接続された実機を使うか、それともエミュレータを使うか聞かれるので、実機 ASUS TF101 を選択。TF101 上でサンプルプログラムが実行される。
で、TF101 に向けてメッセージをプッシュすると、端末下部にそのメッセージが表示されるんだけど、それは数秒ですぐ消えちゃうので、サンプルプログラム上にメッセージを表示するように、ちょっとプログラムを修正する。
「Android GCM 受信したメッセージを表示」というサイトなどを参考に。
具体的には、GCMIntentService.java を修正。
import android.os.Bundle;
を追加して、onMessage を、
protected void onMessage(Context context, Intent intent) {
Log.i(TAG, "Received message");
// ここから追加&修正
Bundle extras = intent.getExtras();
String result = extras.getString("message");
//String message = getString(R.string.gcm_message);
String message = getString(R.string.gcm_message) + " = " + result;
// ここまで
displayMessage(context, message);
// notifies user
generateNotification(context, message);
}
こんな風に修正。
これで、
こんな感じで、プッシュしたメッセージがアプリ画面にも表示される。
ちなみに、最初のメッセージが化けているのは EUC-JP で送ったから(^^;;;
当然メッセージは UTF-8 で送らないと駄目駄目。
コメントする