我創建了一個使用Android版GCM的Android應用程序。此應用程序適用於多個設備。 但是突然之間,它停止了之前工作過的一臺設備上的工作。我只在該設備上遇到問題:它不再收到任何消息。經過一些調試和調整我的代碼進行測試後,似乎該設備在GCM上註冊時會不斷獲得新的註冊ID(我想當您多次註冊設備時,您會收到相同的註冊ID?)。我從設備中刪除了幾次應用程序,然後重新安裝了應用程序,並將不同的註冊ID保存到我的數據庫(而其他設備則保留相同的註冊ID)。我總是會收到1個設備的不同註冊ID
當我調試郵件傳輸代碼時,我注意到GCM將消息發送給多個註冊ID(所有存儲在我的數據庫中的同一設備),並且每條消息的狀態都正常,但我的設備沒有收到任何消息。我熟悉一個規範的ID,但是這個規範的ID在每個結果中都是空的。所以我想這不是問題?
這個問題突然出現了。我不知道問題是什麼。該應用程序繼續在其他設備上工作,我只有一個設備上有這個問題。
任何人都可以幫我解決這個問題嗎?
在「每次檢查此ID是否存在」時,您對「每次」的含義是什麼?每次應用程序啓動?每次安裝該應用程序? – pomber 2014-08-28 17:23:48
這是我實施GCM的方式。當SharedPreferences中沒有註冊ID時,我註冊我的設備並將此註冊ID保存到SharedPreferences和我的數據庫中。當應用程序重新啓動時,我檢查是否存在註冊ID。如果是的話,我不會再次註冊。 當我收到'deviceNotRegistred錯誤'時,我注意到了這個問題。我更改了我的代碼進行測試,以便每次打開應用程序時都會註冊並獲得註冊ID。然後我發送了一條消息給該註冊ID進行測試。他們都沒有到達。並且下一次生成另一個註冊ID,也不接收消息。 – 2014-08-28 19:19:41
我的意思是每次啓動應用程序時,都需要檢查現有的GCM註冊ID(如果不存在) - 註冊。閱讀此鏈接http://developer.android.com/google/gcm/client.html – Tomer 2014-08-29 08:58:45