在一些程序中,需要从网上下载数据,或者通过其他方式对网络产生流量,当wifi不可用时应该提示用户wifi已经不可用了,是否继续,因为如果wifi掉了,那么程序可能采用3G卡或其他的收费的渠道使用网络,会导在不知情时产生大量的上网费用。通过查看android的api可使用下列方法进行判断:
- public static boolean isWiFiActive(Context inContext) {   
-         Context context = inContext.getApplicationContext();   
-         WifiManager wifiManager = (WifiManager) context   
-                 .getSystemService(Context.WIFI_SERVICE);   
-         return wifiManager.isWifiEnabled();   
-     }  
 public static boolean isWiFiActive(Context inContext) {
		Context context = inContext.getApplicationContext();
		WifiManager wifiManager = (WifiManager) context
				.getSystemService(Context.WIFI_SERVICE);
		return wifiManager.isWifiEnabled();
	}
 
在模拟器上使用这个方法时,可以正确判断wifi是否可用,但是在真机上就判断不出来。wifi是断开的,但是返回的结果true,造成wifi判断不准确。经过尝试可使用如下的方法判断方能正确:
- public static boolean isWiFiActive(Context inContext) {   
-         Context context = inContext.getApplicationContext();   
-         ConnectivityManager connectivity = (ConnectivityManager) context   
-                 .getSystemService(Context.CONNECTIVITY_SERVICE);   
-         if (connectivity != null) {   
-             NetworkInfo[] info = connectivity.getAllNetworkInfo();   
-             if (info != null) {   
-                 for (int i = 0; i < info.length; i++) {   
-                     if (info[i].getTypeName().equals("WIFI") && info[i].isConnected()) {   
-                         return true;   
-                     }   
-                 }   
-             }   
-         }   
-         return false;   
-     }  
 public static boolean isWiFiActive(Context inContext) {
		Context context = inContext.getApplicationContext();
		ConnectivityManager connectivity = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE);
		if (connectivity != null) {
			NetworkInfo[] info = connectivity.getAllNetworkInfo();
			if (info != null) {
				for (int i = 0; i < info.length; i++) {
					if (info[i].getTypeName().equals("WIFI") && info[i].isConnected()) {
						return true;
					}
				}
			}
		}
		return false;
	}、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
  在android中,如何判断网络是否连接或WIFI已连接呢,很简单,可以用如下的方法判断 
- public static boolean checkNetworkConnection(Context context)   
-    {   
-        final ConnectivityManager connMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);   
-   
-        final android.net.NetworkInfo wifi =connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);   
-        final android.net.NetworkInfo mobile =connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);   
-   
-        if(wifi.isAvailable()||mobile.isAvailable())   
-            return true;   
-        else  
-            return false;   
-    }