GCM中的PROJECT_ID消息为空

时间:2014-08-09 00:11:01

标签: android-intent google-cloud-messaging android-intentservice

背景

  • 我有一个Android应用
  • 我有两个Google API项目,显然有两个SENDER_ID和两个API密钥,这两个项目都支持Google Cloud Messaging。
  • 一个广播接收器,它从意图中提取EXTRAS,并根据intent extras包中的“from”键为每个Project生成不同的IntentService。此外,使用ComponentName生成IntentService。

这个“from”键是PROJECT_ID / SENDER_ID,基于这些我产生了一个不同的Intent Service来处理意图。

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

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

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

但是,当我为这两个谷歌项目发出推送通知时,我会收到他们两个的意图附加内容,其中一个在“from”键下有PROJECT_ID,另一个在此键下有空。

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

在实施中是否有一些显而易见的东西?

1 个答案:

答案 0 :(得分:0)

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

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

通过这种方式,您将拥有一个适用于两个发件人的注册ID。

希望这能解决你的问题。