2011-08-02 50 views
2

我有一個關於如何檢查某個url的可達性的問題。我可以通過httpget url連接來完成。Android可達性測試

HttpGet httpGet = new HttpGet(HOST_URL); 
HttpParams httpParameters = new BasicHttpParams(); 
int timeoutConnection = 5000; 
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection); 
int timeoutSocket = 8000; 
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); 
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters); 
HttpResponse response = httpClient.execute(httpGet); 

但我想用這種方式來做到這一點。

ConnectivityManager cm = (ConnectivityManager) TabViewActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE); 
boolean test = cm.requestRouteToHost(ConnectivityManager.TYPE_WIFI, 
          lookupHost(HOST_IP)); 

但問題是布爾總是返回flase。

如果您對這個問題有任何想法,這將是一個很大的幫助。

在此先感謝。

+0

格式化的帖子時,請多加小心。 –

+0

對不起,我的壞。這是沒關係,直到我按Ctrl + K。然後它搞砸了。代碼標籤不能正常工作。 – nala4ever

回答

4

requestRouteToHosttype_wifi

requestRouteToHost方法行不通正確返回整數值,因爲它與type_mobile工作。

Type_wifi是它不適用的一個。

不過你需要的權限:

ACCESS_NETWORK_STATE 

ACCESS_WIFI_STATE 
+0

嘿謝里夫,我給了那些權限。我沒有得到任何權限相關的錯誤。 – nala4ever

+0

你確定你已連接到無線?也許你需要檢查網絡!而不是wifi –

+0

是的,我連接到無線網絡。如你所建議的,我嘗試使用移動網絡。它工作並返回true。但它似乎不適用於WIFI。 – nala4ever