Получение INVALID_SENDER на одном устройстве при работе с другим GCM-андроидом

Я слежу за Android Push Notifications с помощью Google Cloud Messaging (GCM), чтобы реализовать GCM с моим приложением, он отлично работал на одном устройстве (Galaxy S), когда я пытался протестируйте его с другим устройством ( Galaxy Tab 7') его порождающей ошибкой.

handleRegistration: registrationId = null, error = INVALID_SENDER, незарегистрированный = null

вот журнал, который я получаю

V/GCMRegistrar(5649): Registering app  my_maypackage of senders APA91bHvzZbO_nyYvaA_QRGDaV-wRAYKjt0qJSQmzPUi2unqG7j0OGuyhVY1A3zh-ZfnA0XT0ffgyKypVJ_5owLZvZBNGARpTBkBg9ED8gVVCDejaIpShghq_tXGhMnFQEufwdCL1ibm
V/GCMRegistrar(5649): Setting registeredOnServer status as true until 2013-04-02 11:02:07.847

V/GCMBroadcastReceiver(5649): onReceive: com.google.android.c2dm.intent.REGISTRATION
V/GCMBroadcastReceiver(5649): GCM IntentService class: my_maypackage.GCMIntentService
V/GCMBaseIntentService(5649): Acquiring wakelock
V/GCMBaseIntentService(5649): Intent service name: GCMIntentService-980172650021-7

D/GCMBaseIntentService(5649): handleRegistration: registrationId = null, error = INVALID_SENDER, unregistered = null
D/GCMBaseIntentService(5649): Registration error: INVALID_SENDER
I/GCMIntentService(5649): Received error: INVALID_SENDER
V/GCMBaseIntentService(5649): Releasing wakelock

Примечание. Оба устройства настроены с той же учетной записью gmail.

Ответ 1

В журнале отображается неверный идентификатор отправителя. он должен быть взят из URL-адреса проекта Google api. например

https://code.google.com/apis/console/b/0/#project:65464654646546

тогда 65464654646546 является идентификатором отправителя.

Ответ 2

Для меня это помогло "Google Cloud Messaging для Android" в разделе "Консоль API": enter image description here

Ответ 3

[Добавление в ответ @spanjeta:]

Проблема заключается в том, что его нетривиально получить номер проекта, из-за того, что Google постоянно меняет настройки консоли разработчика. Хотя Google был достаточно любезен, чтобы дать разработчикам возможность объявить дружественный/текстовый идентификатор для своих проектов, они не обновили документацию GCM, поскольку это не может заменить идентификатор проекта в клиенте GCM. Когда вы это сделаете (дайте проекту текстовое имя/идентификатор), вы не сможете его использовать, потому что вы получите ошибку INVALID_SENDER. Вы должны получить чистый цифровой идентификатор проекта.

Итак, как вы получаете номер проекта? Вам нужно как-то добраться до старой консоли разработчика. Следующий способ работает (пока): Yo перейти к консоли разработчика → Ваш проект → APIS → Google Cloud Messaging для Android → Квота Затем откроется новая старая консольная консоль google devloper со следующим URL-адресом: https://code.google.com/apis/console/b/0/?noredirect#project: YOUR_PROJECT_NUMBER: квоты

Затем используйте YOUR_PROJECT_NUMBER как GCM SENDER_ID в своем приложении.

Ответ 4

Я просто хотел поделиться с вами тем, что сейчас столкнулся с этой проблемой.

GCM push работал отлично, прежде чем ничего не изменилось, и все внезапно наши пользователи сбросили назад жалобы на то, что не получили push-уведомления.

Итак, я просмотрел весь поток StackOverflow. эта проблема и по-прежнему не могла понять, что произошло (если все идентификаторы/ключи приложения были правильно введены, код был абсолютно прав, даже опробован на демо Google и бла-бла-бла)

Итак, в отчаянии я пошел в консоль dev и отключил GCM, затем снова включил его... все просто сработало!

Ответ 5

Существует идентификатор проекта и номер проекта, показанный в верхней части панели инструментов проекта.

Project ID: aaaa-bbb-000000 Project Number: 00000111112

Вы должны использовать числовой номер проекта как SENDER_ID.

Ответ 6

возможно, вам нужно изменить GOOGLE_PROJ_ID

Первая

введите описание изображения здесь

Второй введите описание изображения здесь

Удача!!