2015-09-04 159 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 –

相关问题