0

AndroidアプリをC2DMからGCMに移行中です。サーバー側でGCMとC2DMの両方のIDを表示するように設定し、サーバー側で登録されているサービスに応じて適切なサービスを介して送信します。

私が遭遇した問題は、アプリがGCMとしてサーバーに登録されていることです(インテントで新しい送信者IDを使用するようにアプリが更新されています)。ただし、残念ながら、登録IDとしてサーバーに渡されるIDは実際には古いC2DMID。

既存のC2DM登録IDを引き続き使用するのではなく、新しい(GCM)IDを確実に取得するために、この移行の一部として(アプリコードで)実行する必要があることはありますか?これはテストと再現が簡単で、毎回一貫した結果が得られます(GCMサーバーのMisMatchedSenderId)。最初にC2DMIDの登録を解除する必要がありますか?

4

2 に答える 2

0

デバイスにはすでに登録ID(c2dm)があり、新しいsenderId(gcmの場合)で登録サーバーにアクセスしようとしても、古いc2dm登録を使用していたため、問題が何であるかを理解できました。 id。コメントありがとうございます

于 2012-09-07T17:44:30.517 に答える
0

送信者IDとしてメールアドレスの代わりにGoogleAPIプロジェクトIDを送信するには、クライアントコードを更新する必要があります。

Google APIプロジェクトIDを取得する方法については、GCMスタートガイドをご覧ください。

移行ガイドからコピーしたコード変更の例を次に示します。

Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
// sets the app name in the intent
registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0));
registrationIntent.putExtra("sender", senderID);
startService(registrationIntent);

私の場合、senderIDは実際にはstrings.xmlから読み込まれたため、そこでメールアドレスをGoogleAPIプロジェクトIDに置き換える必要がありました。

于 2012-09-05T13:17:45.100 に答える