2013-08-25 15 views
0

我擁有了一切工作,但突然間,當我打電話SERVICE_NOT_AVAILABLE GCM

*更新1:這是發生在一個LG L5,但三星Galaxy S3正常工作

regid = gcm.register(Constants.SENDER_ID); 

我得到一個異常的:SERVICE_NOT_AVAILABLE

我做了什麼,谷歌告訴做,並設置一個按鈕,只要這樣的異常時重試,但我仍然得到了上面的異常

我檢查了以下內容:

  1. 時間和日期是正確的。
  2. 該設備有一個SIM卡。
  3. Google Play服務已安裝。正如我所說,它正在工作,但突然停了下來。 這可能來自谷歌的盡頭,因爲他們的服務器可能會超載?

回答

0

SERVICE_NOT_AVAILABLE可能意味着您的設備無法讀取響應,或者服務器中存在500/503。你說你有一個重試按鈕,但谷歌建議有一個指數後退,然後你的應用程序本身應該嘗試遵循指數後退時間。

此外,請檢查您是否已將"com.google.android.c2dm.intent.REGISTRATION"添加到清單中的GCMBroadcastReceiver,並且正在處理該清單。如果您尚未擁有詳細解決方案,請查看:GCM SERVICE_NOT_AVAILABLE on Android 2.2。評論這是否有效。

+0

SERVICE_NOT_AVAILABLE可能表示您的設備無法讀取響應,或者服務器中存在500/503。 - 如何知道哪一個?-------------- //如果出現錯誤,不要一直試圖要求用戶再次點擊一個按鈕,或者指數後退,關閉 - 所以這兩個工作。 -----------我的目標是最低sdk 15,是的,我確實添加了「com.google.android.c2dm.intent.REGISTRATION」。仍然無法工作。 – tony9099

+0

@ tony9099好的。首先,如果你沒有意識到,用互聯網語言,CAPS的話似乎是你尖叫。所以,請不要尖叫。其次,爲了區分這兩者,我認爲你可以檢查你在第三方服務器上得到的迴應。閱讀標題爲[響應格式](http://java.llp2.dcc.ufmg.br/apiminer/static/docs/google/gcm/gcm.html#server)。如果您在那裏收到500個代碼,那麼它的服務器錯誤不是。希望這可以幫助。 –

+0

對不起,如果它出現這種方式。我並不是真的在喊:)。 ----其實,我沒有做任何服務器端的工作,我只是通過gcm.register(Constants.SENDER_ID)獲得了regID,並且在收到後,我將它輸入到我的在線數據庫中。 – tony9099

0

顯然這是來自Google方面的一個錯誤,直到今天還沒有解決。

請參閱here

恢復回舊API解決了問題。