0

Google C2DM サービスを実装しようとしています。

registrationIntent.putExtra("app", PendingIntent.getBroadcast(context,0,new Intent(), 0));
registrationIntent.putExtra("sender","example@gmail.com");
context.startService(registrationIntent);

ほとんどすべてのチュートリアルで、このコード行が取り上げられています。これはコーディングが必要なサービスですか? または、Android はこのタイプのインテントを処理する方法を知っていますか。デフォルトのコンストラクターを使用して、ヘルパー クラスからこのメソッドを呼び出しています。現在の Context を this 上記のメソッドに渡して、登録インテントを作成します。これがどのように機能するか、または私のプログラムがどこに行くかについて、誰かが洞察を持っていますか?

4

2 に答える 2

0

いいえ、サービスを作成する必要はありません。Googleのサービスにインテントを送信する必要があります。インテントが作成され、サービス名が含まれている最初の行を省略しました。これは通常、次のようなものです。

    インテントregistrationIntent=new Intent( "com.google.android.c2dm.intent.REGISTER");

この行com.google.android.c2dm.intent.REGISTERは、Googleのサービスを識別します。

ここでも、登録結果(IDまたはエラー)を受信するブロードキャストレシーバーを作成する必要があります。そして、実際のC2DMメッセージを受信する受信機。

于 2012-06-14T18:15:42.490 に答える
0

あなたは最も興味深いコードを省略しました

Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");

これはコーディングが必要なサービスですか? または、Android はこのタイプのインテントを処理する方法を知っていますか。

インテントはcom.google.android.c2dmドメインにあることに注意してください。デバイス上の Android C2DM 実装は、このインテントを処理する方法を認識しており、それを処理するために独自のサービスを開始します。

于 2012-06-14T18:12:02.970 に答える