根据网络连接模式,激活网络

来源:互联网 发布:阿里云os 魅族 编辑:程序博客网 时间:2024/06/06 03:52
/**
     * 根据网络连接模式,激活网络
     * 
     * @param bv
     *            界面参数
     */
    public void openNetworkByModel(Activity bv) {
        try {
            final String CDMA777 = "#777:CDMA";
            final String TD_HSDPA = "TD_HSDPA";
            final String CMWAP = "wap";
            final String CMNET = "cmnet";
            Context context = bv.getApplicationContext();
            ConnectivityManager connectivity = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);


            NetworkInfo ni = connectivity.getActiveNetworkInfo();


            if ((null != ni) && ni.isAvailable()) {
                String nameType = ni.getTypeName();
                int type = ni.getType();
                String extraInfo;
                if (!nameType.equalsIgnoreCase("wifi")) {
                    NetworkInfo[] info = connectivity.getAllNetworkInfo();
                    if (info != null) {
                        String typeName;
                        for (int i = 0; i < info.length; i++) {
                            typeName = info[i].getTypeName();
                            extraInfo = info[i].getExtraInfo();
                            if ((extraInfo.indexOf("ctnet") != -1) || extraInfo.indexOf("ctwap") != -1
                                    || extraInfo.equalsIgnoreCase(CDMA777)) {
                                connectivity.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, "*");
                                return;
                                // 表示是电信的手机,处理方法稍有不同
                                // setCmwapAPN();
                                // return;
                            }
                            if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                                String subType = info[i].getSubtypeName();
                                // 此处判断连接类型,由于没有比较直观的反应wap和net的相关差异�?
                                // 所以此处比较粗糙以后应该修正
                                if (subType.equalsIgnoreCase(TD_HSDPA) || extraInfo.contains(CMWAP)) {
                                    connectivity.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, CMWAP);
                                    HttpManager.CONNECTYPE = 1;
                                    return;
                                } else {
                                    connectivity.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, CMNET);
                                    return;
                                }
                            }
                        }
                    }
                }
            }
        } catch (Exception e) {
            Utils.printException(e);
        }


    }
原创粉丝点击