0

背景

  • 我有一个安卓应用
  • 我有两个谷歌 API 项目,所以显然有两个 SENDER_ID 和两个 API 密钥,这两个项目都启用了谷歌云消息传递。
  • 一个广播接收器,它从意图中提取 EXTRAS 并根据意图附加包中的“来自”键为每个项目生成不同的 IntentService。IntentService 也是使用 ComponentName 生成的。

这个“发件人”键是 PROJECT_ID/ SENDER_ID ,基于这些我产生了一个不同的意图服务来处理意图。

从这里学到了执行此操作的步骤:https ://developer.android.com/google/gcm/client.html

问题 当应用程序启动时,我调用了两个 JAVA 类,它们使用具有各自 PROJECT_ID/SENDER_ID 的 GoogleCoudMessaging 单例注册到 GCM 服务器。

这已成功实施,我获得了两者的注册 ID。

但是,当我为这两个谷歌项目发出推送通知时,我都会收到它们的额外意图,一个在“来自”键下有 PROJECT_ID,另一个在这个键下有 null。

问题是第二个注册的项目总是会在推送消息中获得 PROJECT_ID,而首先注册的项目不会将 PROJECT_ID 返回到他的意图额外内容中。

我在实施中是否缺少明显的东西?

4

1 回答 1

0

我建议您只向 GCM 注册一次,同时使用两个发件人 ID:

GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(contexts);
gcm.register (sender1,sender2);

这样,您将拥有一个适用于两个发件人的注册 ID。

希望这能解决您的问题。

于 2014-08-09T12:16:05.350 回答