在一台设备上使用INVALID_SENDER,同时使用另一台GCM android

时间:2013-03-26 05:59:21

标签: android google-cloud-messaging

我正在关注Android Push Notifications using Google Cloud Messaging (GCM)使用我的应用程序实现GCM,当我尝试使用其他设备(Galaxy S)测试它时,它在单个设备( Galaxy Tab 7')上运行良好。

  

handleRegistration:registrationId = null,error = INVALID_SENDER,unregistered = 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帐户。

6 个答案:

答案 0 :(得分:21)

日志显示错误的发件人ID。它应该来自Google api项目网址。 e.g

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

然后65464654646546是发件人ID。

答案 1 :(得分:14)

对我来说,从控制台的API部分启用“Google Cloud Messaging for Android”是什么? enter image description here

答案 2 :(得分:6)

[添加到@ spanjeta的答案:]

问题在于,由于Google不断对开发者控制台进行修改,因此获取项目编号并非易事。尽管Google非常友好地为开发人员提供了为其项目声明友好/文本ID的可能性,但他们没有更新GCM文档,因为这不能替代GCM客户端中的项目ID。 当你这样做(给项目一个文本名称/ ID) - 你不能使用它,因为你会得到一个INVALID_SENDER错误。 您必须以某种方式获得纯数字项目ID。

那你怎么得到项目编号?你需要以某种方式获得旧的开发者控制台。 以下方式适用(暂时): 哟转到开发者控制台→您的项目→APIS→适用于Android的Google Cloud Messaging→配额 然后将使用以下URL打开一个新的旧的google devloper控制台选项卡: https://code.google.com/apis/console/b/0/?noredirect#project:的 YOUR_PROJECT_NUMBER :配额

然后,在您的应用中使用 YOUR_PROJECT_NUMBER 作为GCM SENDER_ID。

答案 3 :(得分:2)

我只想与您分享我刚才遇到同样的问题。

GCM推送之前工作得非常好,没有任何改变,突然之间我们的用户因为没有获得推送通知而抱怨。

所以我确实检查了所有StackOverflow线程。这个问题仍然无法解决问题(如果应用程序ID /密钥都正确输入,代码完全正常,甚至尝试了Google演示,等等等等等)

所以在绝望的行为中我去了开发控制台并禁用了GCM,然后重新启用它......一切正常!

答案 4 :(得分:2)

项目信息中心顶部显示了项目ID和项目编号。

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

您必须使用数字项目编号作为SENDER_ID。

答案 5 :(得分:1)

也许您需要更改GOOGLE_PROJ_ID

<强>第一

enter image description here

<强>第二 enter image description here

祝你好运!