2009-09-01 90 views
2

有沒有什麼辦法可以知道網絡是否在。我有下面的代碼blackbery設備連接或沒有,但它是等到網絡超時。黑莓收到通知。

int rc = connection.getResponseCode(); 
if (rc != HttpConnection.HTTP_OK) { 
throw new IOException("HTTP response code: " + rc); 
} 

有沒有其他辦法。

回答

3

有用於獲取網絡信息的幾個API:

RadioInfo.isDataServiceOperational(); 
CoverageInfo.isOutOfCoverage(); 
WLANInfo.getWLANState(); 
+1

+1 RadioInfo.getState()也可能是在努力爲用戶創建一個強大的/有用的錯誤信息很有幫助。 – Fostah 2009-09-01 12:26:03

4

這個問題的標題比問題的主體有不同的含義。基於該標題,則可以當網絡通過使用RadioStatusListener接口,它定義一個networkStarted()函數開始通知。然後,您可以使用coldice建議的檢查來確保當前網絡支持數據傳輸。

RadioStatusListner JavaDocs

+2

我第二變形點焊此,具體內RadioStatusListner的networkStateChange(INT狀態)方法。這將爲您節省後臺線程始終檢查網絡狀態的麻煩。 雖然我也建議檢查RadioInfo.isDataServiceOperational()之前使每個時間的數據連接。考慮到你可能會等待超時,這是一個建議的做法。 – AtariPete 2009-09-01 14:58:42