android 网络判断的几种方法

来源:互联网 发布:视频照片拼接软件 编辑:程序博客网 时间:2024/05/21 09:39


Android网络判断很简单,看代码就能明白

package mark.zhang;    import java.util.List;    import android.content.Context;  import android.location.LocationManager;  import android.net.ConnectivityManager;  import android.net.NetworkInfo;  import android.telephony.TelephonyManager;    public class NetworkProber {        /**      * 网络是否可用      *       * @param activity      * @return      */      public static boolean isNetworkAvailable(Context context) {          ConnectivityManager connectivity = (ConnectivityManager) context                  .getSystemService(Context.CONNECTIVITY_SERVICE);          if (connectivity == null) {          } else {              NetworkInfo[] info = connectivity.getAllNetworkInfo();              if (info != null) {                  for (int i = 0; i < info.length; i++) {                      if (info[i].getState() == NetworkInfo.State.CONNECTED) {                          return true;                      }                  }              }          }          return false;      }        /**      * Gps是否打开      *       * @param context      * @return      */      public static boolean isGpsEnabled(Context context) {          LocationManager locationManager = ((LocationManager) context                  .getSystemService(Context.LOCATION_SERVICE));          List<String> accessibleProviders = locationManager.getProviders(true);          return accessibleProviders != null && accessibleProviders.size() > 0;      }        /**      * wifi是否打开      */      public static boolean isWifiEnabled(Context context) {          ConnectivityManager mgrConn = (ConnectivityManager) context                  .getSystemService(Context.CONNECTIVITY_SERVICE);          TelephonyManager mgrTel = (TelephonyManager) context                  .getSystemService(Context.TELEPHONY_SERVICE);          return ((mgrConn.getActiveNetworkInfo() != null && mgrConn                  .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel                  .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);      }        /**      * 判断当前网络是否是wifi网络      * if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE) { //判断3G网      *       * @param context      * @return boolean      */      public static boolean isWifi(Context context) {          ConnectivityManager connectivityManager = (ConnectivityManager) context                  .getSystemService(Context.CONNECTIVITY_SERVICE);          NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();          if (activeNetInfo != null                  && activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {              return true;          }          return false;      }        /**      * 判断当前网络是否是3G网络      *       * @param context      * @return boolean      */      public static boolean is3G(Context context) {          ConnectivityManager connectivityManager = (ConnectivityManager) context                  .getSystemService(Context.CONNECTIVITY_SERVICE);          NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();          if (activeNetInfo != null                  && activeNetInfo.getType() == ConnectivityManager.TYPE_MOBILE) {              return true;          }          return false;      }  }  

另外还有两个方法判断网络是否可用:

public static boolean isNetworkAvailable_00(Context context) {          ConnectivityManager cm = ((ConnectivityManager) context                  .getSystemService(Context.CONNECTIVITY_SERVICE));          if (cm != null) {              NetworkInfo info = cm.getActiveNetworkInfo();              if (info != null && info.isConnectedOrConnecting()) {                  return true;              }          }          return false;      }        public static boolean isNetworkAvailable_01(Context context) {          ConnectivityManager cm = (ConnectivityManager) context                  .getSystemService(Context.CONNECTIVITY_SERVICE);          NetworkInfo network = cm.getActiveNetworkInfo();          if (network != null) {              return network.isAvailable();          }          return false;      }  

更加严谨的写法:

public static boolean checkNet(Context context) {                    try {              ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);              if (connectivity != null) {                                NetworkInfo info = connectivity.getActiveNetworkInfo();                  if (info != null && info.isConnected()) {                                        if (info.getState() == NetworkInfo.State.CONNECTED) {                          return true;                      }                  }              }          } catch (Exception e) {          return false;  }          return false;      }  
在这里感谢原作者的总结 ,原文出处:http://blog.csdn.net/veryitman/article/details/6860146

0 0