我正在关注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帐户。
答案 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”是什么?
答案 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)