| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
f25p
10年前发布

android 网络判断工具类(APN+WIFI)

    public class NetWorkHelper {                    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;            }                        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) throws Exception {                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) throws Exception {                ConnectivityManager connectivityManager = (ConnectivityManager) context                        .getSystemService(Context.CONNECTIVITY_SERVICE);                boolean isWifiDataEnable = false;                isWifiDataEnable = connectivityManager.getNetworkInfo(                        ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();                return isWifiDataEnable;            }                    /**            * 设置Mobile网络开关            *             * @param context            * @param enabled            * @throws Exception            */            public static void setMobileDataEnabled(Context context, boolean enabled)                    throws Exception {                APNManager apnManager=APNManager.getInstance(context);                List<APN> list = apnManager.getAPNList();                if (enabled) {                    for (APN apn : list) {                        ContentValues cv = new ContentValues();                        cv.put("apn", apnManager.matchAPN(apn.apn));                        cv.put("type", apnManager.matchAPN(apn.type));                        context.getContentResolver().update(uri, cv, "_id=?",                                new String[] { apn.apnId });                    }                } else {                    for (APN apn : list) {                        ContentValues cv = new ContentValues();                        cv.put("apn", apnManager.matchAPN(apn.apn) + "mdev");                        cv.put("type", apnManager.matchAPN(apn.type) + "mdev");                        context.getContentResolver().update(uri, cv, "_id=?",                                new String[] { apn.apnId });                    }                }            }                }