package com.finddreams.baselib.http; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.telephony.TelephonyManager; import com.finddreams.baselib.service.ServiceManager; /** * @Description:检查网络状态的工具类 * @author http://blog.csdn.net/finddreams */ public class NetStateUtil { /** * Check current network whether available * @param context * @return */ public static boolean checkNet(Context context) { ConnectivityManager manager = ServiceManager.getConnectivityManager(context); NetworkInfo info = manager.getActiveNetworkInfo(); if (info != null && info.isAvailable() && info.isConnected()) { return true; }else { return false; } } /** * Judge network whether Wifi connectivity * @param context * @return */ public static boolean isWifi(Context context) { ConnectivityManager manager = ServiceManager.getConnectivityManager(context); NetworkInfo networkInfo = manager.getActiveNetworkInfo(); if (networkInfo != null) { int type = networkInfo.getType(); if (networkInfo.isAvailable() && networkInfo.isConnected() && type == ConnectivityManager.TYPE_WIFI ) { return true; } } return false; } /** * 判断当前网络是否是移动流量连接 * @param context * @return */ public static boolean isMobile(Context context) { ConnectivityManager manager = ServiceManager.getConnectivityManager(context); NetworkInfo networkInfo = manager.getActiveNetworkInfo(); if (networkInfo != null) { int type = networkInfo.getType(); if (networkInfo.isAvailable() && networkInfo.isConnected() && type == ConnectivityManager.TYPE_MOBILE) { return true; } } return false; } /** * Whether open wifi * @param context * @return */ public static boolean isWifiEnabled(Context context) { ConnectivityManager mgrConn = ServiceManager.getConnectivityManager(context); TelephonyManager mgrTel = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); return ((mgrConn.getActiveNetworkInfo() != null && mgrConn .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS); } /** * 判断当前是否有可用的网络以及网络类型 0:无网络 1:WIFI 2:CMWAP 3:CMNET * * @param context * @return */ public static int isNetworkAvailable(Context context) { ConnectivityManager connectivity = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity == null) { return 0; } else { NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info != null) { for (int i = 0; i < info.length; i++) { if (info[i].getState() == NetworkInfo.State.CONNECTED) { NetworkInfo netWorkInfo = info[i]; if (netWorkInfo.getType() == ConnectivityManager.TYPE_WIFI) { return 1; } else if (netWorkInfo.getType() == ConnectivityManager.TYPE_MOBILE) { String extraInfo = netWorkInfo.getExtraInfo(); if ("cmwap".equalsIgnoreCase(extraInfo) || "cmwap:gsm".equalsIgnoreCase(extraInfo)) { return 2; } return 3; } } } } } return 0; } }