2012-03-28 62 views
0

我一直在使用de C2DM并且一直在努力工作。最近我遇到了一个问题,我似乎无法解决这个问题,也无法在这个论坛上提供任何帮助。问题是我有几个使用C2DM的应用程序,我让所有应用程序注册了相同的发件人ID,然后在用户数据库中注册用户令牌。如果用户有我的两个应用程序A & B(相同的发件人ID)并启动应用程序A,并且我向用户B发送了推送通知,那么启动应用程序A的用户A的最后一个将收到实际用于应用程序B.Android C2DM发件人ID

我的问题是有办法使用相同的发件人ID为1设备上安装的所有应用程序?

回答

1

编号C2DM注册ID的范围是一个设备上的一个应用程序。如果一个C2DM消息被发送到一个注册ID,它只会被传送到一个应用程序。您应该从一开始就使用不同的C2DM帐户,因此每个应用程序都有自己的注册ID。注册ID不是每个设备,而是每个App每个设备。

如果您不能重新配置注册ID,那么您可以使用接收器,然后发送广播意图,并且您的应用程序可以通过响应该广播来接收它。我希望你会需要两个应用程序来听和重播,但它应该工作。我建议你重新配置你的C2DM使用寿命,因为你目前的设置并不理想,我预计这个问题只会变得更糟。

我假设你说的“发件人ID”是指你的注册ID。

+0

感谢Ollie C,是的,我的意思是注册ID(Google称它为发件人ID)。那么我想,除了为每个应用程序分配自己的注册ID之外没有其他办法。我还没有部署应用程序是,仍在测试它们。这确实会导致我的问题,我必须为每个应用程序创建一个谷歌帐户。另一个问题是每个应用程序都属于一个客户端。在这种情况下,客户可以提供帐户信息,但令我困扰的是我必须提示客户提供他的密码。 – Bami 2012-03-29 13:49:00

+0

请勿将注册ID与发件人ID混淆。对于所有应用程序来说,使用相同的发件人ID完全有效,但如Ollie C所说,每个注册ID都与一个设备上的一个应用程序相关联。 – gnuf 2012-03-29 16:13:50