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

更多相关文章

  1. Android 网络连接-重试机制-HttpRequestRetryHandler(HttpClient)
  2. android网络连接
  3. android 判断 网络 类型
  4. Android 3.0 http网络请求
  5. Android获取网络视频文件缩略图
  6. android 获取网络IP地址
  7. Android 3G网络下 http refused 解决办法
  8. android关于网络

随机推荐

  1. android进行主题切换不重启整个应用(styl
  2. 【Android(安卓)内存优化】Bitmap 硬盘缓
  3. 【Android】Android江湖
  4. android告别篇-对于源码我的一些看法
  5. 2019零基础学Android第0课——零基础怎么
  6. 谁说Android的动画不廉价(一)之项目分层
  7. android 中Xml里面的id重名问题
  8. Android中Drawable适配介绍
  9. 【Android实战之旅 001】AsyncTask异步操
  10. Android中使用Handler和异步任务(AsyncTac