gblf 发表于 2015-9-30 13:02:23

android 中判断WiFi是否可用的可靠方法 ,android 是否联网

  http://alex-yang-xiansoftware-com.iteye.com/blog/619841
  
  


  在一些程序中,需要从网上下载数据,或者通过其他方式对网络产生流量,当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.getTypeName().equals("WIFI") && info.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.getTypeName().equals("WIFI") && info.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;   
[*]   }

  
  
页: [1]
查看完整版本: android 中判断WiFi是否可用的可靠方法 ,android 是否联网