-2

アプリにGoogleクラウドメッセージングを実装したいと思います。クラスGCMIntentServiceがあり、マニフェストへのアクセス許可を追加し、このコードをメインアクティビティに追加します。

checkNotNull(SENDER_ID, "SENDER_ID");
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);

requestWindowFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.activity_main);
extras = getIntent().getExtras();

if (savedInstanceState == null) {

    if (extras == null) {

        GlobalConfig.setAPPLICATION_ID(APP_ID);

    } else {

        GlobalConfig.setAPPLICATION_ID(extras.getInt("application_id", 0));
    }

} else {

    MY_DEBUG.print("SavedInstanceState is not null");

}

GlobalConfig.setBookmark(0);

//notifications
final String regId = GCMRegistrar.getRegistrationId(this);
Log.i(TAG, "registration id  " + regId);

if (regId.equals("")) {


    GCMRegistrar.register(this, SENDER_ID);

} else {

    Log.v(TAG, "Already registered");

}

RegIdを取得しましたが、Googleからメッセージを取得するために他に何が必要ですか?Webサービスに接続します。このregIdをサービスに送信する必要がありますか?次のステップは何ですか?

4

2 に答える 2

2

これは、サーバー(Webサービス)からGCMサーバーを介してデバイスにメッセージを送信するためのすべての手順を説明する画像です。

登録IDを取得するため、ステップ1と2はすでに完了しています(あなたの言ったことを理解している場合)。

したがって、通知を受け取るには、次の手順に従う必要があります。

これがお役に立てば幸いです。

于 2012-12-18T14:51:17.037 に答える
1

GCMがどのように機能し、プロセスにおけるサーバーの役割を説明するブログ投稿を作成しました。http : //blog.andromo.com/2012/how-does-airbop-push-messaging-work/ AirBopサーバーの代わりにサーバーを使用するだけです。

次のステップは、デバイス登録を処理するサーバーに登録IDを送信することです。これは、サーバー、またはAirBopUrbanAirshipなどのサードパーティサーバーのいずれかになります。

おそらく、GCMデモアプリケーションのチュートリアルとGCMアーキテクチャの概要、およびGCMサンプルを確認する必要があります。

Googleドキュメントから:

これは、モバイルデバイスで実行されているAndroidアプリケーションがメッセージの受信を登録したときに発生する一連のイベントです。

(1)Androidアプリケーションが初めてメッセージングサービスを使用する必要があるとき、GCMサーバーへの登録インテントを起動します。

この登録インテント(com.google.android.c2dm.intent.REGISTER)には、送信者IDとAndroidアプリケーションIDが含まれています。

注:アプリケーションを初めて実行するときに呼び出されるライフサイクルメソッドがないため、登録インテントはonCreate()で送信する必要がありますが、アプリケーションがまだ登録されていない場合に限ります。

(2)登録が成功すると、GCMサーバーはcom.google.android.c2dm.intent.REGISTRATIONインテントをブロードキャストし、Androidアプリケーションに登録IDを付与します。

Androidアプリケーションは、後で使用するためにこのIDを保存する必要があります(たとえば、onCreate()がすでに登録されているかどうかを確認するため)。Googleは定期的に登録IDを更新する可能性があるため、com.google.android.c2dm.intent.REGISTRATIONインテントが複数回呼び出される可能性があることを理解してAndroidアプリケーションを設計する必要があることに注意してください。Androidアプリケーションはそれに応じて応答できる必要があります。

(3)登録を完了するために、Androidアプリケーションは登録IDをアプリケーションサーバーに送信します。アプリケーションサーバーは通常、登録IDをデータベースに保存します。

登録IDは、Androidアプリケーションが明示的に登録を解除するまで、またはGoogleがAndroidアプリケーションの登録IDを更新するまで続きます。

上記のリストのステップ3にいます。ServerUtilitiesクラスのregister()メソッドを見ると、gcm-demo-clientがステップ3をどのように実行するかを確認できます。

于 2012-12-18T15:58:45.107 に答える