Регистрация устройства Android C2DM дает ошибку 401

Я пытаюсь зарегистрировать Android-устройство в службе Google C2DM, но получаю следующее в logcat, когда пытаюсь сделать это после установки приложения на телефон:

W/DefaultRequestDirector(1210): ошибка аутентификации: невозможно ответить ни на один из этих вызовов: {} D/C2DMRegistrar(1210): [C2DMRegistrar.30] register: ошибка http 401 E/C2DMRegistrar(1210): [C2DMReg] handleRequest перехвачен org.apache.http.auth.AuthenticationException

Я также печатаю то, что отправляю в Google, в logcat. Это следует явно, только адрес электронной почты вынут. Этот адрес электронной почты я зарегистрировал в Google, чтобы отправлять push-уведомления.

Дополнительные намерения: Bundle[{[email protected], app=PendingIntent{4471c300: android.os.BinderProxy@44762840}}]

Объект ComponentName (результат вызова startService): ComponentInfo{com.google.android.gsf/com.google.android.gsf.gtalkservice.PushMessagingRegistrar}

Чтобы уточнить, это НЕ проблема с отправкой фактического сообщения на устройство - я не зашел так далеко. Эта проблема связана с регистрацией устройства.

Любая помощь будет принята с благодарностью.


person Matt    schedule 12.04.2012    source источник


Ответы (1)


Есть несколько вещей, которые вам нужно сделать, чтобы пройти регистрацию: 1. Зарегистрируйтесь на веб-сайте Android C2DM с учетной записью электронной почты Google. 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", "[email protected]");
    ComponentName result = startService(intent);
    Log.d("Intent", "" + result);
}

Также не забудьте объявить это в своем манифесте

если используемая вами учетная запись электронной почты не управляется Google, это также может быть причиной проблемы. Вы можете просто зарегистрировать новую учетную запись gmail, чтобы использовать ее для push-уведомлений c2dm.

надеюсь это поможет

person Jake    schedule 21.06.2012