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 判断 网络 类型
  2. android网络连接
  3. Android(安卓)网络连接-重试机制-HttpRequestRetryHandler(HttpCl
  4. Android(安卓)正则表达式验证手机和邮箱格式是否正确
  5. Android中创建文件以及文件夹
  6. Android(安卓)获得可用摄像头id
  7. android 判断文件是否存在
  8. android MediaPlayer SurfaceView 网络视频播放器
  9. Android中向SD卡读写数据,读SD卡和手机内存

随机推荐

  1. Android(安卓)Apk签名
  2. Android(安卓)AsyncTask问题
  3. Android应用程序中Activity的生命周期
  4. Android布局居中的几种做法
  5. Eclipse中安装Android并配置IDE(集成开发
  6. Android代码设置EditText只输入数字、字
  7. Android(安卓)中文API (65) —— Bluetooth
  8. android 对图像进行矩阵变换(Martix)的使
  9. Android中launcherMode="singleTask"详解
  10. 运行android的SDK Manager.exe无反应