GCM サンプルクライアントを改造してメッセージを表示するように[Android]
(2013-05-15 12:22:06) by shinoda


GCM のクライアントのテスト。

ADT 導入済みの Eclipse で、Android SDK Manager を起動して Extras→Google Cloud Messaging for Android Library をインストールする。

<画像:20130515_Android2.jpg>
そしたら、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);
    }

こんな風に修正。

これで、

<画像:20130515_Android1.jpg>
こんな感じで、プッシュしたメッセージがアプリ画面にも表示される。

ちなみに、最初のメッセージが化けているのは EUC-JP で送ったから(^^;;;
当然メッセージは UTF-8 で送らないと駄目駄目。

コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8