2013-04-23 82 views
1

我已經在我的應用程序中實現GCM和我的設備重新安裝app.I後得到兩個警報已經閱讀有關規範的ID,但它真的很難找到關於如何使用信息它或如何/在哪裏實施它。 Google的文檔有時非常模糊,並沒有提供示例。這是我如何進行正常註冊以獲取regID。Android的 - 如何實現規範的ID爲GCM防止重複

GCMRegistrar.register(this, getString(R.string.gcm_project_id)); 

我是否更改此代碼以發送規範註冊,如果是的話如何?我的服務器是不會告訴我有什麼典型的IDS它總是說成功3(應該是2對其他設備)和Canonical 0,所以沒有辦法對我來說,更新數據庫,因爲它不會讓我知道有一個欺騙。

回答

0

你是混合的東西,這個調用接受來自谷歌API控制檯所採取的發件人ID。註冊ID通過GCMBaseIntentService中的onRegistered方法發送給您,您應該將其發送給服務器,以便您可以在推送通知發送中使用它。現在,如果您有一箇舊的註冊ID,則Google會在發送服務的響應中向您的服務器發送更新後的註冊ID AKA Canonical id。

+1

我想我現在明白了,但它是一個有點混亂。我沒有得到通知,我有一個重複,因爲我的服務器以某種方式註冊了兩次ID,所以它在技術上是相同的ID只是用了兩次發送消息。所以這就是爲什麼規範ID在響應中表示0。有時候事情對我來說並不是很清楚,儘管我讀了幾個SO問題。感謝您的迴應。 – 2013-04-23 11:29:04

+0

@Mahdi赫加不工作的我來說,我已經發送的消息既舊的應用程序「REG_ID」並重新安裝應用程序「REG_ID」但對於舊的應用程序GCM節目{錯誤:「NotRegistered」},和「canonical_ids:0,我仍沒有得到canonical_ids你能告訴我爲什麼它不適合我? – 2016-07-28 14:05:27

0

一切都是我們需要更新現有的註冊ID,在服務器規範的ID在這裏我們存儲。您CA使用這個答案Update Canonical Id