Android网络工具类:NetWorkHelper

jopen 10年前

    import android.content.Context;        import android.net.ConnectivityManager;        import android.net.NetworkInfo;        import android.net.Uri;        import android.net.NetworkInfo.State;        import android.telephony.TelephonyManager;        import android.util.Log;                public class NetWorkHelper {            public static final int NETWORN_NONE = 0;            public static final int NETWORN_WIFI = 1;            public static final int NETWORN_MOBILE = 2;            private static String LOG_TAG = "NetWorkHelper";                    public static Uri uri = Uri.parse("content://telephony/carriers");                    /**             * 判断是否有网络             */            public static boolean isNetworkAvailable(Context context) {                ConnectivityManager connectivity = (ConnectivityManager) context                        .getSystemService(Context.CONNECTIVITY_SERVICE);                        if (connectivity == null) {                    Log.w(LOG_TAG, "couldn't get connectivity manager");                } else {                    NetworkInfo[] info = connectivity.getAllNetworkInfo();                    if (info != null) {                        for (int i = 0; i < info.length; i++) {                            if (info[i].isAvailable()) {                                Log.d(LOG_TAG, "network is available");                                return true;                            }                        }                    }                }                Log.d(LOG_TAG, "network is not available");                return false;            }            /**             * 检查网络状态             * @param context             * @return             */            public static boolean checkNetState(Context context){                boolean netstate = false;                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[i].getState() == NetworkInfo.State.CONNECTED)                             {                                netstate = true;                                break;                            }                        }                    }                }                return netstate;            }                    /**             * 判断网络是否为漫游             */            public static boolean isNetworkRoaming(Context context) {                ConnectivityManager connectivity = (ConnectivityManager) context                        .getSystemService(Context.CONNECTIVITY_SERVICE);                if (connectivity == null) {                    Log.w(LOG_TAG, "couldn't get connectivity manager");                } else {                    NetworkInfo info = connectivity.getActiveNetworkInfo();                    if (info != null                            && info.getType() == ConnectivityManager.TYPE_MOBILE) {                        TelephonyManager tm = (TelephonyManager) context                                .getSystemService(Context.TELEPHONY_SERVICE);                        if (tm != null && tm.isNetworkRoaming()) {                            Log.d(LOG_TAG, "network is roaming");                            return true;                        } else {                            Log.d(LOG_TAG, "network is not roaming");                        }                    } else {                        Log.d(LOG_TAG, "not using mobile network");                    }                }                return false;            }                    /**             * 判断MOBILE网络是否可用             *              * @param context             * @return             * @throws Exception             */            public static boolean isMobileDataEnable(Context context) {                ConnectivityManager connectivityManager = (ConnectivityManager) context                        .getSystemService(Context.CONNECTIVITY_SERVICE);                boolean isMobileDataEnable = false;                        isMobileDataEnable = connectivityManager.getNetworkInfo(                        ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();                        return isMobileDataEnable;            }                                /**             * 判断wifi 是否可用             * @param context             * @return             * @throws Exception             */            public static boolean isWifiDataEnable(Context context) {                ConnectivityManager connectivityManager = (ConnectivityManager) context                        .getSystemService(Context.CONNECTIVITY_SERVICE);                boolean isWifiDataEnable = false;                isWifiDataEnable = connectivityManager.getNetworkInfo(                        ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();                return isWifiDataEnable;            }                                public static int getNetworkState(Context context){                ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);                        //Wifi                State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();                if(state == State.CONNECTED||state == State.CONNECTING){                    return NETWORN_WIFI;                }                        //3G                state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();                if(state == State.CONNECTED||state == State.CONNECTING){                    return NETWORN_MOBILE;                }                return NETWORN_NONE;            }                    }