2014-03-02 26 views
0

我使用gcm在android中創建聊天應用程序。一切正常,發送和接收來自仿真器和設備的消息,直到我遇到問題。GCM有時在某些時間工作不在同一臺設備上?

問題是我已經嘗試在2設備,第一設備三星Galaxy GIO和第二裝置星系王牌..

第一天我試圖王牌發送成功的消息,吉奧和接收消息,但從吉奧到王牌我什麼也沒得到。

秒一天,我得到了奇怪的問題,我再次GCM,我成功地發送消息,從GIO到王牌和接收消息,但是從王牌到吉奧我什麼也沒有..問題第二天首先是相反一天,爲什麼我得到這樣的問題?在gcm顯示成功發送消息的結果,但在設備中沒有收到任何消息,我可以解決這個問題?

謝謝

+0

您是否確定要更新服務器端的設備令牌? GCM文件聲明它可能會隨時更改。 – UnTraDe

+0

沒有。如果你有關於更新GCM的最新信息的鏈接(就像我上面的情況一樣)。請在android和GCM中顯示me.I newbie。 – ltvie

+0

請參閱下面的答案。 – UnTraDe

回答

0

由於這種不一致的行爲,我假設你的問題是更新註冊ID的。 GCM服務器有時會使註冊ID無效,您必須從設備更新它。這裏是如何:

當一個應用程序更新,應該廢止其現有 註冊ID,因爲它不能保證新版本的工作。 因爲在更新應用程序 時沒有調用生命週期方法,所以實現此驗證的最佳方法是在存儲註冊標識時存儲 當前應用程序版本。然後在應用程序啓動時 ,將存儲的值與當前應用程序版本 進行比較。如果它們不匹配,則使存儲的數據無效並再次開始註冊過程。

在這裏閱讀更多:http://developer.android.com/google/gcm/adv.html#reg-state

關於如何實現客戶端:http://developer.android.com/google/gcm/client.html

服務器端:http://developer.android.com/google/gcm/http.html

注意,如果你沒有一個第三方服務器,和你應用程序正在與其他Android設備進行「點對點」通信,您應該在它們之間同步這些數據。

相關問題