2012-07-05 85 views
1

我按照入门页面所述将GCM实施到我的应用程序,并使用gcm.jar和gcm-server.jar帮助器库实现更简单的实施。Android GCM注册以获取更多信息

但我想我误解了GCM的一些东西; beucase我无法实现我想要的。

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

我注册设备时,用户陈述获得有关某些特定事件(例如城市)的通知。

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

如何向应用程序服务器发送附加参数?

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

回答

2

没有什么能阻止你实现你自己的代码发送信息到你的应用服务器。我已经用我的应用程序完成了。在您创建的GCMIntentService类中创建的插入代码在您的

protected void onRegistered(Context context,String regId) 

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

+0

你是对的,但当我调用onRegistered方法时,我丢失了我的关键信息。我很抱歉,我不明白你的意思是“如果你愿意使用谷歌应用程序引擎” – 2012-07-05 11:56:29

+0

你不会失去你的关键信息。它存储在你的App的SharedPreferences中。你可以从任何地方找回它。 Google提供了一个用于开发的App Engine。我从来没有使用它,但你可以看看它。我知道GCM与它接口。 – 2012-07-05 12:00:14

+0

SharedPreferences?我从来没有听说过,但现在我正在检查。谢谢 – 2012-07-05 12:08:51