Android gcm示例给出寄存器:http错误400

Android gcm示例给出寄存器:http错误400,android,android-c2dm,google-cloud-messaging,Android,Android C2dm,Google Cloud Messaging,我按照中给出的步骤进行操作,每次尝试从我的设备(在froyo上运行)注册时都会出现以下错误 07-04 22:48:31.178:D/C2DMRegister(3880):[C2DMRegister.66]寄存器:http错误400 对于senderId,我曾尝试使用projectID(根据谷歌)、电子邮件Id和API密钥,但都不起作用 我有android market并在设备上登录了google帐户。响应400:仅适用于JSON请求。指示无法将请求解析为JSON,或者该请求包含无效字段(例如,

我按照中给出的步骤进行操作,每次尝试从我的设备(在froyo上运行)注册时都会出现以下错误

07-04 22:48:31.178:D/C2DMRegister(3880):[C2DMRegister.66]寄存器:http错误400

对于senderId,我曾尝试使用projectID(根据谷歌)、电子邮件Id和API密钥,但都不起作用


我有android market并在设备上登录了google帐户。

响应400:仅适用于JSON请求。指示无法将请求解析为JSON,或者该请求包含无效字段(例如,在需要数字的位置传递字符串)。响应中描述了确切的失败原因,应该在重试请求之前解决问题


您可以参考来自请求的所有可用响应。

响应400:仅适用于JSON请求。指示无法将请求解析为JSON,或者该请求包含无效字段(例如,在需要数字的位置传递字符串)。响应中描述了确切的失败原因,应该在重试请求之前解决问题



您可以参考来自请求的所有可用响应。

这很奇怪。虽然文档中说发件人ID是项目ID,但它现在可以使用项目ID,但可以使用电子邮件ID。如果使用电子邮件地址注册工作,那可能是因为您将该电子邮件地址用作C2DM开发帐户。新的GCM使用项目ID(一个数字字符串)。如果您使用电子邮件地址进行注册,您仍然要通过C2DM。我从控制台创建了另一个密钥。现在我也可以使用project_ID进行注册,但现在在从服务器发送消息时,它会给出[errorCode=MismatchSenderId]。知道吗?您不能使用旧C2DM的注册ID向GCM服务器发送消息。基本上,您的服务器需要跟踪注册ID,以确定它们是从旧的C2DM还是新的GCM创建的,然后您的服务器可以使用正确的方法推送通知。谢谢,我能够解决所有错误并能够获得通知。这是一个小博客和我的下载代码。这很奇怪。虽然文档中说发件人ID是项目ID,但它现在可以使用项目ID,但可以使用电子邮件ID。如果使用电子邮件地址注册工作,那可能是因为您将该电子邮件地址用作C2DM开发帐户。新的GCM使用项目ID(一个数字字符串)。如果您使用电子邮件地址进行注册,您仍然要通过C2DM。我从控制台创建了另一个密钥。现在我也可以使用project_ID进行注册,但现在在从服务器发送消息时,它会给出[errorCode=MismatchSenderId]。知道吗?您不能使用旧C2DM的注册ID向GCM服务器发送消息。基本上,您的服务器需要跟踪注册ID,以确定它们是从旧的C2DM还是新的GCM创建的,然后您的服务器可以使用正确的方法推送通知。谢谢,我能够解决所有错误并能够获得通知。这是一篇小博客和我的下载代码。谢谢你的回复,这是我能够修复的其他错误。现在,在从服务器发送消息时,我收到了错误:[errorCode=MismatchSenderId]。有什么帮助吗?@AmolGupta,你需要在客户端代码中设置发件人id,以及你注册到
gcm服务器的电子邮件地址(你在http帖子中用来发送消息的地址)。关于这个问题的评论表明,如果我输入emailId,我实际上会使用C2DM方式,而不是GCMThanks,我能修好它。下面是详细信息以及代码Hi Dipali。谢谢你的回复,这是我能够修复的其他错误。现在,在从服务器发送消息时,我收到了错误:[errorCode=MismatchSenderId]。有什么帮助吗?@AmolGupta,你需要在客户端代码中设置发件人id,以及你注册到
gcm服务器的电子邮件地址(你在http帖子中用来发送消息的地址)。关于这个问题的评论表明,如果我输入emailId,我实际上会使用C2DM方式,而不是GCMThanks,我能修好它。下面是详细信息和代码