我使用相同的代码库构建了相同应用程序的3个版本,但使用了不同的包名称和布局。
我的应用程序的一个功能是它接收推送通知消息。
现在,我已经在我的设备上安装了所有3个应用程序。因此,当推送通知到来时,我发现它调用所有3个应用程序的GCMIntentService onMessage()方法???为什么会这样?我很困惑。因为我为我的应用程序使用了不同的包名称。
因此,我收到来自服务器的单个通知的3个通知。
请帮忙!
谢谢!
编辑:我已经确认了每个应用程序在调用onMessage时收到的intent参数中的类别。它似乎正在接收正确的类别。这可能是服务器端的问题吗?
答案 0 :(得分:0)
您的3个应用程序中的每个应用程序都单独注册到GCM,并且应该会收到不同的注册ID,即使所有这三个应用程序都使用相同的发件人ID。
因此,从服务器发送的单个消息应该只教一个应用程序。我假设发生的是您对所有3个应用程序使用了相同的清单定义。我指的是GCM权限和广播接收器的意图服务。在较旧的Android版本上,这会阻止GCM工作,但您可能正在使用Android 4.x设备,其中由于某种原因未强制执行这些权限。
要解决此问题,请在每个应用清单中使用正确的包名称。