已连接但无法连接的Wifi
问题描述:
我正在创建一个依靠互联网的Android应用程序。我如何处理手机连接到Wifi的情况,但实际上并没有工作? 正如在StatusBar
的wifi图标旁边有感叹号一样?已连接但无法连接的Wifi
答
添加权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
试试这个mehod:
public boolean isOnline() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
try {
URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(3000);
urlc.connect();
if (urlc.getResponseCode() == 200) {
return new Boolean(true);
}
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return false;
}
答
您可以检测到无线网络的速度,如果速度是非常低的,那么你可以处理这种情况。
首先,检查你的网络连接类型wifi-
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnectedOrConnecting();
boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;
if(isWifi){
WifiInfo wifiInfo = wifiManger.getConnectionInfo();
int mbps = wifiInfo.getLinkSpeed();
}