2015-09-04 153 views
6

的Android我的設備,但如何在無線網絡連接,但這些是下面沒有互聯網連接機器人如何檢查無線網絡連接,但沒有互聯網連接的帶wifi連接

是我的代碼,我試圖去檢查,如果沒有互聯網連接

public static boolean isConnectedWifi(Context context) { 
     NetworkInfo info=null; 
     if(context!=null){ 
      info= IsNetConnectionAvailable.getNetworkInfo(context); 
     } 
     return (info != null && info.isConnected() && info.getType() == ConnectivityManager.TYPE_WIFI); 
    } 

它總是返回true時無法上網

回答

-2

要只檢查,如果你連接到由Wi-Fi上網,看看下面的代碼片段:

NetworkInfo getWifi(){ 
    ConnectivityManager connManager = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
    return mWifi; 
} 

檢查連接與否;

if(getWifi().isConnected()) { 
//wi-fi connected 
} 
+0

Kaveesh Kanwal,這不是他要求的。 你給出的代碼片段只是爲了檢查設備是否連接到無線網絡。它不測試網速。 –

+0

OP沒有詢問如何檢查網速。祝你好運。 –

+0

他也沒有詢問如何檢查設備是否連接到無線網絡。 :) 由於沒有互聯網接入,我們所能做的只是檢查數據包的發送速度。 –

1

您使用的代碼只是用來檢查您是否連接到無線網絡。它不檢查該WiFi是否緩慢。 (沒有互聯網意味着連接速度慢)。

我試過使用這段代碼。在這裏,我嘗試點擊google.com並設置連接超時值。 如果網速很好,那麼返回的結果是200.所以我檢查結果代碼是否爲200。如果沒有,我會顯示一個警報,說明互聯網連接速度很慢。在asyntask中使用它,onPostExecute()檢查返回結果的值。

HttpURLConnection urlc = null; 
    try { 
     urlc = (HttpURLConnection) (new URL("http://www.google.com") 
       .openConnection()); 
    } catch (MalformedURLException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 
    urlc.setRequestProperty("User-Agent", "Test"); 
    urlc.setRequestProperty("Connection", "close"); 
    urlc.setConnectTimeout(1000); // choose your own timeframe 
    urlc.setReadTimeout(2000); // choose your own timeframe 
    try { 
     urlc.connect(); 

     // returning connection code. 
     return (urlc.getResponseCode()); 
    } catch (IOException e1) { 
     e1.printStackTrace(); 
    } 
+0

它花了我很多時間來檢查互聯網連接 –

+0

是否有任何其他方式來檢查 –

+0

你可以試試這個: http://stackoverflow.com/questions/2802472/detect-network-connection-type-on-android –

相關問題