2013-03-26 175 views
12

我跟随Android Push Notifications using Google Cloud Messaging (GCM)实施GCM与我的应用程序在单一设备上工作正常(Galaxy S)当我试图用另一台设备(Galaxy Tab 7')测试它的生成错误。INVALID_SENDER在一台设备上与另一台GCM一起工作android

handleRegistration:registrationId = NULL,错误= 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帐户配置。

回答

21

日志显示不正确的发件人ID。它应该从Google API项目网址中获取。 e.g

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

然后65464654646546是发送者ID。

+0

想知道........我正在使用基于url的文本“项目ID”,这可能是如何在新的API控制台中编写url。尔加!现在所有的修复,谢谢:) – GONeale 2014-02-17 06:18:45

+0

那么你在哪里项目编号作为编号。我的文本基于警惕支撑234。或者我应该使用这个吗? – 2014-07-26 20:42:05

+0

好的,我找到了一个获取数字项目ID的方法 - 只要进入经典(原始)控制台,它仍然存在! – 2014-07-26 20:49:15

14

对我来说没有什么是它从控制台的API部分启用“谷歌云端通讯Android”的: enter image description here

2

我只是想与大家分享,我碰到了同样的问题刚才。

GCM推之前工作得很好,没有什么改变,突然之间我们的用户突然回来,抱怨没有得到推送通知。

所以我没有检查出所有的StackOverflow线程。这个问题,仍然无法弄清楚事情(有应用程序ID /键都正确输入,代码的完美,甚至尝试过Google演示和等等等等等等)

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

6

[添加到@ spanjeta的回答是:]

的问题是,它的不平凡得到的项目数,由于谷歌曾经打算开发者控制台的修改。虽然Google非常乐意为开发人员提供可以为其项目声明友好/文本标识的可能性,但他们并未更新GCM文档,因为它无法替换GCM客户端中的项目标识。 当你这样做时(给项目一个文本名称/ ID) - 你不能使用它,因为你会得到一个INVALID_SENDER错误。 您必须以某种方式获得纯数字项目ID。

那么你如何获得项目编号?您需要以某种方式访问​​旧的开发者控制台。 以下方法可用(现在): 哟转到开发者控制台→您的项目→APIS→Android版Google云消息传递→配额 然后用以下URL打开一个新的旧版谷歌开发者控制台选项卡: https://code.google.com/apis/console/b/0/?noredirect#projectYOUR_PROJECT_NUMBER:配额

然后,在你的应用程序中使用YOUR_PROJECT_NUMBER作为GCM SENDER_ID。

2

在项目仪表板的顶部显示项目ID和项目编号。

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

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

1

也许你需要改变GOOGLE_PROJ_ID

首先

enter image description here

enter image description here

GOOD LUCK !!

相关问题