Android wiki:04.ConnectivityManager检查是否有可用网络

来源:互联网 发布:孤岛危机2源码 编辑:程序博客网 时间:2024/05/18 02:34
2015/4/12
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Activity.CONNECTIVITY_SERVICE);
    boolean wifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
    boolean sim = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
    if (wifi || sim) {// 有开启wifi或者互联网

    }else{

    }
    
//-----------------------------------------------------------------------

public class NetUtil {
    /**
     * 检查用户网络连接情况
     * @param context
     * @return
     */
    public static boolean checkNetConnetion(Context context) {
        boolean wifi = isWIFIConnetion(context);
        boolean mobile = isMOBILEConnetion(context);

        if (mobile) {// 如果是连接移动APN,就获取代理ip的代理端口
            readAPN(context);
        }

        if (mobile || wifi) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * 读取APN的代理ip和端口
     *
     * @param context
     */
    private static void readAPN(Context context) {
        Uri PREFERRED_APN_URI = Uri.parse("content://telephony/carriers/preferapn");// 4.0模拟器屏蔽掉该权限
        // 操作联系人类似
        ContentResolver resolver = context.getContentResolver();
        // 判断是哪个APN被选中了
        Cursor cursor = resolver.query(PREFERRED_APN_URI, null, null, null, null);

        if (cursor != null && cursor.moveToFirst()) {
            String PROXY = cursor.getString(cursor.getColumnIndex("proxy"));
            int PORT = cursor.getInt(cursor.getColumnIndex("port"));
        }
    }

    /**
     * 检查是否连接移动网络
     *
     * @param context
     * @return
     */
    public static boolean isMOBILEConnetion(Context context) {
        ConnectivityManager cManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = cManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        if (info != null) {
            return info.isConnected();
        }
        return false;
    }

    /**
     * 检查wifi是否连接
     *
     * @param context
     * @return
     */
    public static boolean isWIFIConnetion(Context context) {
        ConnectivityManager cManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = cManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        if (info != null) {
            return info.isConnected();
        }
        return false;
    }

}

0 0