2011-03-13 57 views
2

我在使用C2DM服务测试推送通知时遇到问题。Android C2DM发送问题

我使用Lars'直到“3.4。注册你的应用程序”的例子来设置我的android测试项目。我成功从设备获取注册ID。

然后我成功地使用下面的卷曲得到通过我的服务器的身份验证令牌:

curl https://www.google.com/accounts/ClientLogin -d Email=theEmailYouWhitelisted -d Passwd=pass****word -d accountType=HOSTED_OR_GOOGLE -d source=Google-cURL-Example -d service=ac2dm 

所以现在我有两个主要部分来推动。因此,为了测试目的,我发出另一个curl来发送消息(我将实现身份验证令牌生成,并在发送消息后,一旦我得到它的功能)。

我用:

curl --header "Authorization: GoogleLogin auth=**authFromRegistrationAbove**" "https://android.apis.google.com/c2dm/send" -d registration_id=**phoneRegistrationId(reciever)** -d "data.message=HelloPush" -d collapse_key=something -k 

响应:

错误= NotRegistered

这是我在哪里,和困惑。我通过我的客户端服务器,使用我登录的白名单电子邮件/密码,并成功接入C2DM程序,成功取得了我的身份验证令牌。然后编译Lars的项目来生成我的设备注册ID,但是一旦它们一起使用,我会得到上面没有注册的错误,并且没有推送通知。

想法?评论你是否需要更多信息,我会更新信息。谢谢。

+0

你有 1)购买Android C2DM页与您的电子邮件 2)试图注销和重新登记注册? – 2011-03-13 04:12:16

+0

@ howa.wong - 是的,我注册了,并被列入白名单。注销如何? – bMon 2011-03-13 04:17:59

回答

4

如果你按照我的例子,你应该在RegisterActivity中的文本字段中维护注册的C2DM用户(电子邮件地址)。这必须与CURL中的相同。另外请确保您正确复制认证字符串。

2

您是否看到过这个检查previous questionandroid-c2dm邮件列表上也经常讨论这个问题。 NotRegistered这是search

一个常见问题是,您没有在应用程序上使用与您用于生成身份验证令牌的ID相同的发件人ID。请注意,在C2DM注册表格中,您提供了两个电子邮件地址:一个是在您被接受时通知您,另一个是“角色帐户”。后者也被称为发送者ID,并且是电话应用程序和用于生成身份验证令牌的帐户必须使用的。