1

Android デバイスを Google の C2DM サービスに登録しようとしていますが、電話にアプリをインストールして登録しようとすると、logcat に次のように表示されます。

W/DefaultRequestDirector( 1210): 認証エラー: これらのチャレンジのいずれにも応答できません: {} D/C2DMRegistrar( 1210): [C2DMRegistrar.30] 登録: http エラー 401 E/C2DMRegistrar( 1210): [C2DMReg] handleRequest がキャッチされましたorg.apache.http.auth.AuthenticationException

また、Google に送信しているものを logcat に出力しています。取り出したメールアドレスだけで明示的に続きます。このメール アドレスは、プッシュ通知の送信者として Google に登録したものです。

インテント エクストラ: Bundle[{sender=me@myemail.com, app=PendingIntent{4471c300: android.os.BinderProxy@44762840}}]

ComponentName オブジェクト (startService 呼び出しの結果): ComponentInfo{com.google.android.gsf/com.google.android.gsf.gtalkservice.PushMessagingRegistrar}

明確にするために、これは実際のメッセージをデバイスに送信することの問題ではありません-私はそこまで行きません. この問題は、デバイスを登録する際に発生します。

どんな助けでも大歓迎です。

4

1 に答える 1

0

登録を完了するには、次のことを確認する必要があります。 1. Google メール アカウントを使用して Android C2DM Web サイトにサインアップします。 2. そのアカウントを使用して、登録インテントを Google サーバーに送信します。登録の意図は次のようになります。

public void registerApp() {
    Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER");
    intent.putExtra("app",
            PendingIntent.getBroadcast(this, 0, new Intent(), 0));
    intent.putExtra("sender", "youraccont@gmail.com");
    ComponentName result = startService(intent);
    Log.d("Intent", "" + result);
}

また、マニフェストでこれを宣言してください

使用しているメール アカウントが Google によって管理されていない場合、それも問題の原因となっている可能性があります。c2dm プッシュ通知に使用する新しい gmail アカウントにサインアップするだけです。

お役に立てれば

于 2012-06-21T20:41:36.097 に答える