Android GCM注册了解更多信息

时间:2012-07-05 11:40:18

标签: android google-cloud-messaging

我按照“入门”页面的描述将GCM实施到我的应用程序,并使用gcm.jar和gcm-server.jar帮助程序库以便于实现。

但我认为我误解了GCM的一些内容; beucase我无法达到我想要的目的。

我希望寄存器设备的另一个关键信息不仅仅是registerId。 例如,这是天气应用程序,用户可能想要获得关于一个或多个城市的通知。为实现这一目标,服务器需要城市名称或邮政编码才能从其他来源获取天气信息,并在相关城市发生任何变化时推回已注册的设备。

我在用户声明收到有关特定事件(例如城市)的通知时注册设备。

但是GCMRegistrar.register方法只接受2个参数,一个用于上下文,一个用于senderID。

如何向应用服务器发送其他参数?

编辑:我实现了GCMIntentService和onRegistered方法。我可以通过直接呼叫服务器从这里发送附加信息;但是当调用onRegistered方法时,我会丢失额外的信息。

1 个答案:

答案 0 :(得分:2)

没有什么可以阻止您实施自己的代码来向您的应用服务器发送信息。我用我的应用程序做到了这一点。在GCMIntentService类中,您创建了插入代码,以便在

中执行此操作
protected void onRegistered(Context context,String regId)

方法。您会注意到谷歌的GCM库实际上并没有像使用C2DM那样进行任何第三方应用服务器注册。如果您愿意,可以选择使用谷歌应用引擎。