2

我在我的服務器上實現GCM處理程序。 Google是否爲每個設備或每個用戶發佈一個新的註冊ID?我知道他們爲每個應用版本和用戶發佈了一個新的ID,但是這會延伸到用戶安裝了應用的每個設備上嗎?Google Cloud Messaging(GCM)問題每個設備和用戶有多少個註冊ID?

最後,我問,因爲我想知道我應該如何存儲用戶的應用程序向服務器端發送的註冊ID。

現在我已經實現了最近發送的ID是用戶唯一的註冊ID,但我不確定這是不正確的方式來模擬GCM如何處理註冊ID。我傾向於這是不正確的,我必須根據一些標準保留許多ID的記錄。

任何輸入,將不勝感激。

回答

1

它發出一個ID取決於兩者。如果用戶在特定設備上更改,則ID將會改變,反之亦然。用戶也可以擁有更多的設備,並且在每個設備上ID不同。但你應該知道,谷歌有限制每個用戶可以有多少設備,上次我檢查它是10.

你也應該檢查GCM服務器返回的結果,它會告訴你,如果ID是死了,你可以從你的數據庫中刪除它。

3

基本上,GCM爲每個安裝了應用程序的設備發佈一個新的註冊ID。要回答你的問題,每個設備1個註冊ID。

GCM對您自己的用戶一無所知,因此您需要實現如何篩選用於用戶X和Y的消息(如果他們兩個都使用相同設備)的邏輯。

下面是來自docs東西:

的註冊ID與在用戶的特定記錄的相關聯。如果您取消註冊並重新註冊,GCM可能會返回相同的ID或不同的ID--這兩種方式都無法保證。 要確保郵件轉到目標用戶:

  • 您的應用服務器可以維護當前用戶和註冊ID之間的映射。
  • 然後,應用程序可以檢查以確保它收到的消息與登錄用戶匹配。

上一個項目符號中的整個「匹配」概念就是我的意思。

+1

可能很重要,同時請注意,如果應用程序註冊了多次,您實際上可以爲每個設備註冊多個ID。您可以使用GCM的「規範註冊ID」工具進行協調:http://developer.android.com/google/gcm/gcm.html#reg –

+0

感謝您的補充。對於OP的信息,規範註冊ID是GCM響應中包含的ID,如果設備有多個註冊ID,並且GCM希望您從此繼續使用規範註冊ID。 – Koh

+0

這是否意味着,對於同一款設備,無論應用版本和Android版本更新如何,特定應用的註冊ID都將保持不變?意思是,對於Kitkat上的App1版本1.0,將使用相同的設備爲Lollipop上的App1版本3.5生成相同的註冊ID? – teapeng

相關問題