Android C2DM:只有注册的Google帐户才能从服务器接收消息

Android C2DM:只有注册的Google帐户才能从服务器接收消息,android,android-c2dm,Android,Android C2dm,我似乎被困在花数小时试图找出哪里出了问题。感觉好像我完全误解了什么。所以,事情是这样的: 当我试图让C2DM工作时,我首先用一个专用的电子邮件地址注册了谷歌的C2DM服务。这就是我想用来从服务器向客户端发送消息的方法。然后我向客户端应用程序添加了代码,并为C2DM注册了设备。获得的注册id将发送到服务器并存储在数据库中 当我尝试向设备发送消息时(无论我是使用curl还是php)就会出现问题。发送到我曾经注册C2DM服务的账户,效果是完美的。但是,发送到任何其他设备失败,原因是 错误=未注册。我就

我似乎被困在花数小时试图找出哪里出了问题。感觉好像我完全误解了什么。所以,事情是这样的:

当我试图让C2DM工作时,我首先用一个专用的电子邮件地址注册了谷歌的C2DM服务。这就是我想用来从服务器向客户端发送消息的方法。然后我向客户端应用程序添加了代码,并为C2DM注册了设备。获得的注册id将发送到服务器并存储在数据库中

当我尝试向设备发送消息时(无论我是使用
curl
还是php)就会出现问题。发送到我曾经注册C2DM服务的账户,效果是完美的。但是,发送到任何其他设备失败,原因是

错误=未注册
。我就是不明白为什么。我正在使用注册帐户中的
auth密钥
,以及从客户端创建的
注册id
。我(重新)创建了
注册id
数百次,但都是根据谷歌代码页面

Error=notregisted
表示
注册id
无效

试图澄清:

我可以完美地向注册ID发送消息,该ID链接到我用来注册C2DM的google帐户。向不同注册ID发送消息的所有其他尝试均失败。因此,我基本上可以向单个注册ID发送消息

也许我应该检查一下我对C2DM的理解:服务器是否仅限于向单个设备发送消息?我认为服务器可以向每个提交了注册id的设备发送消息

我遗漏了什么/误解了什么


非常感谢,Steff对发送到哪些设备没有限制。更有可能的是,您发送到的注册ID错误,或者您发送到的设备未成功注册

我建议再次检查注册ID,如果可以的话,在另一台设备上测试,确保当你向谷歌的服务器提交消息时,你得到了200个响应,并确认这些设备确实成功注册以接收C2DM消息

我建议你也读一下。这是我见过的最好的C2DM教程。

发送到哪些设备没有限制。更有可能的是,您发送到的注册ID错误,或者您发送到的设备未成功注册

我建议再次检查注册ID,如果可以的话,在另一台设备上测试,确保当你向谷歌的服务器提交消息时,你得到了200个响应,并确认这些设备确实成功注册以接收C2DM消息

我建议你也读一下。这是我见过的最好的C2DM教程。
我认为您的问题在于,在注册客户端时,您将始终需要使用用于设置c2dm的帐户


你需要确保客户端手机上有一个活跃的谷歌账户(不管是哪个账户),但是当你注册时,你需要使用与注册应用程序相同的账户。我认为它被用作某种类型的标识符,以知道哪个服务器应该能够向应用程序发送通知。手机的标识符可能是由谷歌从上下文中检索到的。你的应用程序(可能是本地活跃的谷歌帐户)应该为你的服务器创建一个手机标识符。

我认为你的问题是,注册客户端时,你总是需要使用你用来设置c2dm的帐户


你需要确保客户端手机上有一个活跃的谷歌账户(不管是哪个账户),但是当你注册时,你需要使用与注册应用程序相同的账户。我认为它被用作某种类型的标识符,以知道哪个服务器应该能够向应用程序发送通知。手机的标识符可能是由谷歌从上下文中检索到的。您的应用程序(可能是本地活跃的谷歌帐户)应为您的服务器创建手机标识符。

假设您已通过电子邮件注册C2DMfoo@foo.com"

随后,您在应用程序本身中请求注册ID。您只能向与“”关联的注册ID发送推送通知的原因foo@foo.com'是因为您应该仅使用注册C2DM时提供的电子邮件地址请求注册ID


这是否解决了您的疑问?

假设您已通过电子邮件注册了C2DMfoo@foo.com"

随后,您在应用程序本身中请求注册ID。您只能向与“”关联的注册ID发送推送通知的原因foo@foo.com'是因为您应该仅使用注册C2DM时提供的电子邮件地址请求注册ID


这是否解决了您的问题?

服务器端代码中有令牌信息,允许您选择要发送消息的设备,您是否已将此令牌更改为其他设备的令牌当您想向另一台设备发送消息时?

服务器端代码中有令牌信息,允许您选择要发送消息的设备,当您想向另一台设备发送消息时,是否已将此令牌(更改为另一台设备的令牌)?

我也有同样的问题,未来:“后台数据”(电话配置)被禁用。打开它解决了这个问题。

我也遇到了同样的问题,未来:“后台数据”(电话配置)被禁用。打开它解决了这个问题。

你的问题不是很清楚。你说“发送到我曾经注册C2DM服务的帐户上工作完美无瑕”但你没有给这个账户寄任何东西,你寄的是乱七八糟的东西