2015-11-11 67 views
0

我們正在IOS和Android上開發應用程序。 GCM推送通知已啓用IOS,現在它工作正常。這兩個平臺的軟件包名稱將會相同。從應用服務器接收GCM推送通知消息的步驟

我被ios開發人員給予了SERVER API KEY和SENDER ID來爲android設置gcm。在尋找步驟時,我碰到了https://developers.google.com/cloud-messaging/android/client

我一直對自己說,內容中列出的步驟需要完成設置Android的GCM(請糾正我,如果我錯了)。

  1. 獲取配置文件,並把它添加到Android項目
  2. 設置谷歌播放服務(我在我的項目依賴添加GCM)
  3. 條目添加到清單文件
  4. 檢查谷歌播放服務APK
  5. 獲取註冊令牌。

「的Android應用程序需要與GCM連接服務器進行註冊,然後才能接收消息」

「的客戶端應用程序應存儲指示登記令牌是否已被髮送到服務器的布爾值。」 - 我的後端團隊告訴我,我不需要發送任何信息,只需在應用程序中配置gcm,應用程序就會從後端接收消息。

所以,我的問題是我需要有RegistrationIntentService和MyInstanceIDListenerService。另外,我是否必須在Manifest中定義我的InstanceIDListenerService?

我們的後端使用設備ID向設備發送推送通知,以便在我們發送設備ID時不需要將註冊令牌發送給它們。所以在這種情況下,我是否應該使用RegistrationIntentService和InstanceIDListenerService向GCM註冊我的應用程序?如果是這樣,應用程序是否應該保留自己的註冊令牌。是否需要此註冊?

回答

1

GCM支持三種類型的下游(服務器到客戶端)消息傳遞:發送到特定設備(也稱爲「簡單」或「目標」),發送到主題或發送到設備組。你的問題說,「我們的後端使用設備ID發送推送通知給設備」。目前尚不清楚「設備ID」是什麼以及您打算使用哪種類型的消息。你的後端團隊已經告訴你,你「不需要發送任何東西」。如果那是真的,我不知道他們在哪裏得到「設備ID」。

GCM提供的三種消息類型中的每一種都要求客戶端設備向GCM註冊並獲得註冊令牌。要向特定設備發送消息,註冊令牌實際上是「設備ID」。所以是的,您需要實施類似於documentation中所述的RegistrationIntentServiceInstanceIDListenerService

文檔中有關需要將註冊令牌發送到應用服務器的描述具有誤導性。這只是有針對性的消息傳遞所需的。 documentation for receiving topic messages指出:「請注意,對於主題消息傳遞,不需要將註冊令牌發送到您的應用程序服務器;但是,如果您確實發送了註冊令牌,則服務器可以驗證令牌的有效性並獲取有關所創建的應用程序的更多信息它。」

+0

查看GCM Android快速入門,此示例僅支持GCM,因此您可以使用它查看Android上GCM的必要條件。 (https://開頭github上。COM/googlesamples /谷歌的服務/樹/主/安卓/ GCM) –

相關問題