0

我使用相同的代码库但使用不同的包名称和布局构建了同一个应用程序的 3 个版本。

我的应用程序的功能之一是它接收推送通知消息。

现在,我已经在我的设备上安装了所有 3 个应用程序。所以当推送通知来的时候,我发现它调用了所有 3 个应用程序的 GCMIntentService onMessage() 方法???为什么会这样?我是一个困惑。因为我为我的应用程序使用了不同的包名称。

因此,我收到来自服务器的单个通知的 3 个通知。

请帮忙!

谢谢!

编辑:我已经从每个应用程序在调用 onMessage 时收到的意图参数确认了类别。它似乎收到了正确的类别。那么这可能是服务器端的问题吗?

4

1 回答 1

0

您的 3 个应用程序中的每一个都分别注册到 GCM,并且应该收到不同的注册 ID,即使所有三个应用程序都使用相同的发件人 ID。

因此,从服务器发送的单个消息应该只教一个应用程序。我假设发生的是您对所有 3 个应用程序使用了相同的清单定义。我指的是 GCM 权限和广播接收器的意图服务。在较旧的 Android 版本上,这将完全阻止 GCM 工作,但您可能使用的是 Android 4.x 设备,其中这些权限由于某种原因未强制执行。

要解决此问题,请在每个应用清单中使用正确的包名称。

于 2013-09-21T19:09:59.473 回答