2012-07-05 86 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