2013-08-20 75 views
1

我做了一個應用程序使用GCM的通知。我用這個教程中,我的代碼是幾乎相同SERVICE_NOT_AVAILABLE Android上的一些設備GCM

http://developer.android.com/google/gcm/client.html

我測試物理設備和一些設備,我得到一個錯誤SERVICE_NOT_AVAILABLE當我嘗試將該設備與GCM註冊。

我有一個指數回退設置,因此它會隨着時間的過去重試。

它對我的大約一半測試設備有效,其他人得到SERVICE_NOT_AVAILABLE錯誤。全神貫注,尚未找到解決方案。

任何幫助將不勝感激。謝謝!

回答

4

SERVICE_NOT_AVAILABLE可能意味着您的設備無法讀取響應或者服務器中存在500/503。你已經有一個指數回退,所以服務器端應該不是我想的問題。查看清單中的GCMBroadcastReceiver是否有"com.google.android.c2dm.intent.REGISTRATION",並且您正在處理該清單。如果您尚未擁有詳細解決方案,請查看:GCM SERVICE_NOT_AVAILABLE on Android 2.2。評論這是否有效。

+0

是的!這確實奏效。很奇怪。 Android文檔沒有提到這方面的任何內容。這只是一個錯誤?或者通過這種方式獲得註冊ID是很常見的做法。我是否也應該實現獲取註冊ID的兩種方法?或者這個BroadCast只爲一切工作。謝謝! – Dan

+0

我的觀點是,android文檔提到[這裏](http://developer.android.com/google/gcm/gcm.html#arch)如下:'請注意,Google可能會定期刷新註冊ID,所以你應該設計你的Android應用程序,理解com.google.android.c2dm.intent.REGISTRATION意圖可能被多次調用。您的Android應用程序需要能夠做出相應的響應。因此,爲了處理續約,您可能需要這樣做。另請參閱[this](http://stackoverflow.com/questions/17893117/gcm-registration-id-changed/17893171#17893171)問題。 –

+0

我明白了。感謝您的快速幫助! – Dan

2

如果你沒有網絡連接,你也會得到這個錯誤。

相關問題