我測試過,當令牌刷新(您收到一個新的令牌)時,您必須重新註冊所有主題。
也會檢出this SO
樣品測試:
- 獲得令牌( 「... b43sCSdoEDkU54SIWll3hbDVsd7E1UdwlAvp4LP」)
- 註冊的話題。
- 發送主題的通知
- 工程!
- 重新啓動幾次的應用,仍然可以得到通知話題
- 部隊呼叫
instanceID.getToken(defaultSenderId, GoogleCloudMessaging.INSTANCE_ID_SCOPE)
;
- 令牌刷新(」 ... XVT_pZq7fy_vKmskiGpDXMyqdAF6ODl_46JMdi5" )爲主題
- 發送通知。我不明白!
更多細節:
工具#1 使用this檢查谷歌GCM數據
- 重新安裝應用程序
- 獲取新的令牌( 「」)
來自工具#1的回覆
{
"applicationVersion": "39",
"connectDate": "2016-01-12",
"application": "com.esportlivescore.develop.debug",
"authorizedEntity": "11443413691531",
"connectionType": "MOBILE",
"appSigner": ".................",
"platform": "ANDROID"
}
- 訂閱主題
響應從工具#1
{
"applicationVersion": "39",
"connectDate": "2016-01-12",
"application": "com.esportlivescore.develop.debug",
"authorizedEntity": "11443413691531",
"rel": {
"topics": {
"match-28388-start": {
"addDate": "2016-01-13"
}
}
},
"connectionType": "MOBILE",
"appSigner": ".................",
"platform": "ANDROID"
}
- 消息爲主題正在工作
- 請求新令牌(刷新)
- 谷歌重新發送我的老令牌:)
- 再次...
- 現在我沒有任何訂閱:(
我做了一段時間的研究,不能找到GCM主題下的文檔標籤。我在這裏查看了代碼:https://github.com/google/gcm/blob/master/samples/android/gcm-demo/src/main/java/com/google/android/gcm/demo/ui/TopicsFragment。 java#L83-L137爲主題。最後,我看到了這個文檔:https://developers.google.com/instance-id/guides/android-implementation#refresh_tokens,我認爲如果刷新標記,則應更新新標記而不是舊標記服務器,但在此之前,您必須檢查主題,併爲舊標記「unsubscribeTopic」並將新標記放入主題中。 – bjiang