国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

App網(wǎng)絡(luò)管理

only_do / 2648人閱讀

摘要:安卓開發(fā)一般都需要進行日志管理,常用操作老司機已為你封裝完畢,你可以用這份工具進行管理,具體可以查看源碼,現(xiàn)在為你開車,傳送門。當前沒有網(wǎng)絡(luò)連接時返回獲取當前網(wǎng)絡(luò)的具體類型上下文當前網(wǎng)絡(luò)的具體類型。

??安卓開發(fā)一般都需要進行日志管理,常用操作老司機已為你封裝完畢,你可以用這份工具進行管理,具體可以查看源碼,現(xiàn)在為你開車,Demo傳送門。

站點 系統(tǒng)日志輸出工具類 → AppKeyBoardMgr
getNetworkState          : 獲取當前手機連接的網(wǎng)絡(luò)類型
isNetworkConnected       : 判斷網(wǎng)絡(luò)是否連接
openNetSetting           : 打開網(wǎng)絡(luò)設(shè)置界面
is3gConnected            : 檢測3G是否連接
getNetworkTypeName       : 獲取網(wǎng)絡(luò)類型名稱
getCurrentNetworkState   : 獲取當前網(wǎng)絡(luò)的狀態(tài)
getCurrentNetworkSubtype : 獲取當前網(wǎng)絡(luò)的具體類型
isConnectedByState       : 判斷當前網(wǎng)絡(luò)是否已經(jīng)連接
isConnectingByState      : 判斷當前網(wǎng)絡(luò)是否正在連接
isDisconnectedByState    : 判斷當前網(wǎng)絡(luò)是否已經(jīng)斷開
isDisconnectingByState   : 判斷當前網(wǎng)絡(luò)是否正在斷開
isSuspendedByState       : 判斷當前網(wǎng)絡(luò)是否已經(jīng)暫停
isUnknownByState         : 判斷當前網(wǎng)絡(luò)是否處于未知狀態(tài)中
isBluetoothByType        : 判斷當前網(wǎng)絡(luò)的類型是否是藍牙
isDummyByType            : 判斷當前網(wǎng)絡(luò)的類型是否是虛擬網(wǎng)絡(luò)
isEthernetByType         : 判斷當前網(wǎng)絡(luò)的類型是否是ETHERNET
isMobileByType           : 判斷當前網(wǎng)絡(luò)的類型是否是移動網(wǎng)絡(luò)
isMobileDunByType        : 判斷當前網(wǎng)絡(luò)的類型是否是MobileDun
isMobileHipriByType      : 判斷當前網(wǎng)絡(luò)的類型是否是MobileHipri
isMobileMmsByType        : 判斷當前網(wǎng)絡(luò)的類型是否是MobileMms
isMobileSuplByType       : 判斷當前網(wǎng)絡(luò)的類型是否是MobileSupl
isWifiByType             : 判斷當前網(wǎng)絡(luò)的類型是否是Wifi
isWimaxByType            : 判斷當前網(wǎng)絡(luò)的類型是否是Wimax
is1XRTTBySubtype         : 判斷當前網(wǎng)絡(luò)的具體類型是否是1XRTT
isCDMABySubtype          : 判斷當前網(wǎng)絡(luò)的具體類型是否是CDMA(Either IS95A or IS95B)
isEDGEBySubtype          : 判斷當前網(wǎng)絡(luò)的具體類型是否是EDGE
isEHRPDBySubtype         :  判斷當前網(wǎng)絡(luò)的具體類型是否是EHRPD
isEVDO_0BySubtype        : 判斷當前網(wǎng)絡(luò)的具體類型是否是EVDO_0
isEVDO_ABySubtype        : 判斷當前網(wǎng)絡(luò)的具體類型是否是EVDO_A
isEVDO_BBySubtype        : 判斷當前網(wǎng)絡(luò)的具體類型是否是EDGE
isGPRSBySubtype          : 判斷當前網(wǎng)絡(luò)的具體類型是否是GPRS
isHSDPABySubtype         : 判斷當前網(wǎng)絡(luò)的具體類型是否是HSDPA
isHSPABySubtype          : 判斷當前網(wǎng)絡(luò)的具體類型是否是HSPA
isHSPAPBySubtype         : 判斷當前網(wǎng)絡(luò)的具體類型是否是HSPAP
isHSUPABySubtype         : 判斷當前網(wǎng)絡(luò)的具體類型是否是HSUPA
isIDENBySubtype          : 判斷當前網(wǎng)絡(luò)的具體類型是否是IDEN
isLTEBySubtype           : 判斷當前網(wǎng)絡(luò)的具體類型是否是LTE
isUMTSBySubtype          : 判斷當前網(wǎng)絡(luò)的具體類型是否是UMTS
isUNKNOWNBySubtype       : 判斷當前網(wǎng)絡(luò)的具體類型是否是UNKNOWN
isChinaMobile2G          : 判斷當前網(wǎng)絡(luò)是否是中國移動2G網(wǎng)絡(luò)
isChinaUnicom2G          : 判斷當前網(wǎng)絡(luò)是否是中國聯(lián)通2G網(wǎng)絡(luò)
isChinaUnicom3G          : 判斷當前網(wǎng)絡(luò)是否是中國聯(lián)通3G網(wǎng)絡(luò)
isChinaTelecom2G         : 判斷當前網(wǎng)絡(luò)是否是中國電信2G網(wǎng)絡(luò)
isChinaTelecom3G         : 判斷當前網(wǎng)絡(luò)是否是中國電信3G網(wǎng)絡(luò)
getWifiState             : 獲取Wifi的狀態(tài),需要ACCESS_WIFI_STATE權(quán)限
isWifiOpen               : 判斷Wifi是否打開,需要ACCESS_WIFI_STATE權(quán)限
setWifi                  : 設(shè)置Wifi,需要CHANGE_WIFI_STATE權(quán)限
isMobileNetworkOpen      : 判斷移動網(wǎng)絡(luò)是否打開,需要ACCESS_NETWORK_STATE權(quán)限
getIpAddress             : 獲取本機IP地址
setDataEnabled           : 設(shè)置數(shù)據(jù)流量狀態(tài)
getWifiScanResults       : 獲取wifi列表
getScanResultsByBSSID    : 過濾掃描結(jié)果
getWifiConnectionInfo    : 獲取wifi連接信息
getProxy                 : 獲得Proxy地址

##具體路線
public class AppNetworkMgr {

//未找到合適匹配網(wǎng)絡(luò)類型
public static final int TYPE_NO = 0;

//中國移動CMNET網(wǎng)絡(luò)(中國移動GPRS接入方式之一, 主要為PC、筆記本電腦、PDA設(shè)立)
public static final int TYPE_MOBILE_CMNET = 1;

//中國移動CMWAP網(wǎng)絡(luò)(中國移動GPRS接入方式之一,主要為手機WAP上網(wǎng)而設(shè)立)
public static final int TYPE_MOBILE_CMWAP = 2;

//中國聯(lián)通UNIWAP網(wǎng)絡(luò)(中國聯(lián)通劃分GPRS接入方式之一, 主要為手機WAP上網(wǎng)而設(shè)立)
public static final int TYPE_MOBILE_UNIWAP = 3;

//中國聯(lián)通3GWAP網(wǎng)絡(luò)
public static final int TYPE_MOBILE_3GWAP = 4;

//中國聯(lián)通3HNET網(wǎng)絡(luò)
public static final int TYPE_MOBLIE_3GNET = 5;

//中國聯(lián)通UNINET網(wǎng)絡(luò)(中國聯(lián)通劃分GPRS接入方式之一, 主要為PC、筆記本電腦、PDA設(shè)立)
public static final int TYPE_MOBILE_UNINET = 6;

//中國電信CTWAP網(wǎng)絡(luò)
public static final int TYPE_MOBILE_CTWAP = 7;

//中國電信CTNET網(wǎng)絡(luò)
public static final int TYPE_MOBILE_CTNET = 8;

//WIFI網(wǎng)絡(luò)
public static final int TYPE_WIFI = 10;

/**
 * 網(wǎng)絡(luò)類型 - 無連接
 */
public static final int NETWORK_TYPE_NO_CONNECTION = -1231545315;

public static final String NETWORK_TYPE_WIFI = "wifi";
public static final String NETWORK_TYPE_3G = "eg";
public static final String NETWORK_TYPE_2G = "2g";
public static final String NETWORK_TYPE_WAP = "wap";
public static final String NETWORK_TYPE_UNKNOWN = "unknown";
public static final String NETWORK_TYPE_DISCONNECT = "disconnect";

/**
 * 獲取當前手機連接的網(wǎng)絡(luò)類型
 *
 * @param context 上下文
 * @return int 網(wǎng)絡(luò)類型
 */
public static int getNetworkState(Context context) {
    //獲取ConnectivityManager對象
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    //獲得當前網(wǎng)絡(luò)信息
    NetworkInfo networkInfo = cm.getActiveNetworkInfo();
    if (networkInfo != null && networkInfo.isAvailable()) {
        //獲取網(wǎng)絡(luò)類型
        int currentNetWork = networkInfo.getType();
        //手機網(wǎng)絡(luò)類型
        if (currentNetWork == ConnectivityManager.TYPE_MOBILE) {
            if(networkInfo.getExtraInfo() != null){
                if (networkInfo.getExtraInfo().equals("cmnet")) {
                    AppLogMessageMgr.i("AppNetworkMgr", "當前網(wǎng)絡(luò)為中國移動CMNET網(wǎng)絡(luò)");
                    return TYPE_MOBILE_CMNET;
                }
                if (networkInfo.getExtraInfo().equals("cmwap")) {
                    AppLogMessageMgr.i("AppNetworkMgr", "當前網(wǎng)絡(luò)為中國移動CMWAP網(wǎng)絡(luò)");
                    return TYPE_MOBILE_CMWAP;
                }
                if(networkInfo.getExtraInfo().equals("uniwap")) {
                    AppLogMessageMgr.i("AppNetworkMgr", "當前網(wǎng)絡(luò)為中國聯(lián)通UNIWAP網(wǎng)絡(luò)");
                    return TYPE_MOBILE_UNIWAP;
                }
                if(networkInfo.getExtraInfo().equals("3gwap")) {
                    AppLogMessageMgr.i("AppNetworkMgr", "當前網(wǎng)絡(luò)為中國聯(lián)通3GWAP網(wǎng)絡(luò)");
                    return TYPE_MOBILE_3GWAP;
                }
                if(networkInfo.getExtraInfo().equals("3gnet")) {
                    AppLogMessageMgr.i("AppNetworkMgr", "當前網(wǎng)絡(luò)為中國聯(lián)通3GNET網(wǎng)絡(luò)");
                    return TYPE_MOBLIE_3GNET;
                }
                if(networkInfo.getExtraInfo().equals("uninet")) {
                    AppLogMessageMgr.i("AppNetworkMgr", "當前網(wǎng)絡(luò)為中國聯(lián)通UNINET網(wǎng)絡(luò)");
                    return TYPE_MOBILE_UNINET;
                }
                if(networkInfo.getExtraInfo().equals("ctwap")) {
                    AppLogMessageMgr.i("AppNetworkMgr", "當前網(wǎng)絡(luò)為中國電信CTWAP網(wǎng)絡(luò)");
                    return TYPE_MOBILE_UNINET;
                }
                if(networkInfo.getExtraInfo().equals("ctnet")) {
                    AppLogMessageMgr.i("AppNetworkMgr", "當前網(wǎng)絡(luò)為中國電信CTNET網(wǎng)絡(luò)");
                    return TYPE_MOBILE_UNINET;
                }
            }
            //WIFI網(wǎng)絡(luò)類型
        }else if (currentNetWork == ConnectivityManager.TYPE_WIFI) {
            AppLogMessageMgr.i("AppNetworkMgr", "當前網(wǎng)絡(luò)為WIFI網(wǎng)絡(luò)");
            return TYPE_WIFI;
        }
    }
    AppLogMessageMgr.i("AppNetworkMgr-->>NetworkUtils", "當前網(wǎng)絡(luò)為不是我們考慮的網(wǎng)絡(luò)");
    return TYPE_NO;
}

/**
 * 判斷網(wǎng)絡(luò)是否連接
 *
 * @param context 上下文
 * @return boolean 網(wǎng)絡(luò)連接狀態(tài)
 */
public static boolean isNetworkConnected(Context context) {
    if (context != null) {
        ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
        //獲取連接對象
        if (mNetworkInfo != null) {
            //判斷是TYPE_MOBILE網(wǎng)絡(luò)
            if(ConnectivityManager.TYPE_MOBILE == mNetworkInfo.getType()){
                AppLogMessageMgr.i("AppNetworkMgr", "網(wǎng)絡(luò)連接類型為:TYPE_MOBILE");
                //判斷移動網(wǎng)絡(luò)連接狀態(tài)
                State STATE_MOBILE = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
                if (STATE_MOBILE == State.CONNECTED) {
                    AppLogMessageMgr.i("AppNetworkMgrd", "網(wǎng)絡(luò)連接類型為:TYPE_MOBILE, 網(wǎng)絡(luò)連接狀態(tài)CONNECTED成功!");
                    return mNetworkInfo.isAvailable();
                }
            }
            //判斷是TYPE_WIFI網(wǎng)絡(luò)
            if(ConnectivityManager.TYPE_WIFI == mNetworkInfo.getType()){
                AppLogMessageMgr.i("AppNetworkMgr", "網(wǎng)絡(luò)連接類型為:TYPE_WIFI");
                //判斷WIFI網(wǎng)絡(luò)狀態(tài)
                State STATE_WIFI = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
                if (STATE_WIFI == State.CONNECTED) {
                    AppLogMessageMgr.i("AppNetworkMgr", "網(wǎng)絡(luò)連接類型為:TYPE_WIFI, 網(wǎng)絡(luò)連接狀態(tài)CONNECTED成功!");
                    return mNetworkInfo.isAvailable();
                }
            }
        }
    }
    return false;
}

/**
 * 判斷網(wǎng)絡(luò)是否連接
 *
 * @param activity Activity
 * @return boolean 網(wǎng)絡(luò)連接狀態(tài)
 */
public static boolean isNetworkConnected(Activity activity){
    boolean falg = false;
    ConnectivityManager mConnectivityManager = (ConnectivityManager) activity.getApplicationContext().getSystemService("connectivity");
    if (mConnectivityManager == null){
        return falg;
    }
    NetworkInfo[] arrayOfNetworkInfo = mConnectivityManager.getAllNetworkInfo();
    if (arrayOfNetworkInfo != null){
        for (int j = 0; j < arrayOfNetworkInfo.length; j++){
            if (arrayOfNetworkInfo[j].getState() == State.CONNECTED){
                falg = true;
                break;
            }
        }
    }
    return falg;
}

/**
 * 打開網(wǎng)絡(luò)設(shè)置界面
 *
 * @param activity Activity
 */
public static void openNetSetting(Activity activity) {
    Intent intent = new Intent("/");
    ComponentName cm = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");
    intent.setComponent(cm);
    intent.setAction("android.intent.action.VIEW");
    activity.startActivityForResult(intent, 0);
}

/**
 * 檢測3G是否連接
 *
 * @param context 上下文
 * @return 結(jié)果
 */
public static boolean is3gConnected(Context context) {
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (cm != null) {
        NetworkInfo networkInfo = cm.getActiveNetworkInfo();
        if (networkInfo != null
            && networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
            return true;
        }
    }
    return false;
}

/**
 * Get network type
 *
 * @param context context
 * @return NetworkType
 */
public static int getNetworkType(Context context) {
    ConnectivityManager connectivityManager
        = (ConnectivityManager) context.getSystemService(
        Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connectivityManager == null
        ? null
        : connectivityManager.getActiveNetworkInfo();
    return networkInfo == null ? -1 : networkInfo.getType();
}
/**
 * Get network type name
 *
 * @param context context
 * @return NetworkTypeName
 */
public static String getNetworkTypeName(Context context) {
    ConnectivityManager manager
        = (ConnectivityManager) context.getSystemService(
        Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo;
    String type = NETWORK_TYPE_DISCONNECT;
    if (manager == null ||
        (networkInfo = manager.getActiveNetworkInfo()) == null) {
        return type;
    }
    ;

    if (networkInfo.isConnected()) {
        String typeName = networkInfo.getTypeName();
        if ("WIFI".equalsIgnoreCase(typeName)) {
            type = NETWORK_TYPE_WIFI;
        }
        else if ("MOBILE".equalsIgnoreCase(typeName)) {
            String proxyHost = android.net.Proxy.getDefaultHost();
            type = TextUtils.isEmpty(proxyHost)
                ? (isFastMobileNetwork(context)
                ? NETWORK_TYPE_3G
                : NETWORK_TYPE_2G)
                : NETWORK_TYPE_WAP;
        }
        else {
            type = NETWORK_TYPE_UNKNOWN;
        }
    }
    return type;
}
/**
 * Whether is fast mobile network
 *
 * @param context context
 * @return FastMobileNetwork
 */
private static boolean isFastMobileNetwork(Context context) {
    TelephonyManager telephonyManager
        = (TelephonyManager) context.getSystemService(
        Context.TELEPHONY_SERVICE);
    if (telephonyManager == null) {
        return false;
    }

    switch (telephonyManager.getNetworkType()) {
        case TelephonyManager.NETWORK_TYPE_1xRTT:
            return false;
        case TelephonyManager.NETWORK_TYPE_CDMA:
            return false;
        case TelephonyManager.NETWORK_TYPE_EDGE:
            return false;
        case TelephonyManager.NETWORK_TYPE_EVDO_0:
            return true;
        case TelephonyManager.NETWORK_TYPE_EVDO_A:
            return true;
        case TelephonyManager.NETWORK_TYPE_GPRS:
            return false;
        case TelephonyManager.NETWORK_TYPE_HSDPA:
            return true;
        case TelephonyManager.NETWORK_TYPE_HSPA:
            return true;
        case TelephonyManager.NETWORK_TYPE_HSUPA:
            return true;
        case TelephonyManager.NETWORK_TYPE_UMTS:
            return true;
        case TelephonyManager.NETWORK_TYPE_EHRPD:
            return true;
        case TelephonyManager.NETWORK_TYPE_EVDO_B:
            return true;
        case TelephonyManager.NETWORK_TYPE_HSPAP:
            return true;
        case TelephonyManager.NETWORK_TYPE_IDEN:
            return false;
        case TelephonyManager.NETWORK_TYPE_LTE:
            return true;
        case TelephonyManager.NETWORK_TYPE_UNKNOWN:
            return false;
        default:
            return false;
    }
}
/**
 * 獲取當前網(wǎng)絡(luò)的狀態(tài)
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)的狀態(tài)。具體類型可參照NetworkInfo.State.CONNECTED、NetworkInfo.State.CONNECTED.DISCONNECTED等字段。當前沒有網(wǎng)絡(luò)連接時返回null
 */
public static NetworkInfo.State getCurrentNetworkState(Context context) {
    NetworkInfo networkInfo
        = ((ConnectivityManager) context.getSystemService(
        Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
    return networkInfo != null ? networkInfo.getState() : null;
}
/**
 * 獲取當前網(wǎng)絡(luò)的類型
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)的類型。具體類型可參照ConnectivityManager中的TYPE_BLUETOOTH、TYPE_MOBILE、TYPE_WIFI等字段。當前沒有網(wǎng)絡(luò)連接時返回NetworkUtils.NETWORK_TYPE_NO_CONNECTION
 */
public static int getCurrentNetworkType(Context context) {
    NetworkInfo networkInfo
        = ((ConnectivityManager) context.getSystemService(
        Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
    return networkInfo != null
        ? networkInfo.getType()
        : NETWORK_TYPE_NO_CONNECTION;
}
/**
 * 獲取當前網(wǎng)絡(luò)的具體類型
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)的具體類型。具體類型可參照TelephonyManager中的NETWORK_TYPE_1xRTT、NETWORK_TYPE_CDMA等字段。當前沒有網(wǎng)絡(luò)連接時返回NetworkUtils.NETWORK_TYPE_NO_CONNECTION
 */
public static int getCurrentNetworkSubtype(Context context) {
    NetworkInfo networkInfo
        = ((ConnectivityManager) context.getSystemService(
        Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
    return networkInfo != null
        ? networkInfo.getSubtype()
        : NETWORK_TYPE_NO_CONNECTION;
}
/**
 * 判斷當前網(wǎng)絡(luò)是否已經(jīng)連接
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)是否已經(jīng)連接。false:尚未連接
 */
public static boolean isConnectedByState(Context context) {
    return getCurrentNetworkState(context) == NetworkInfo.State.CONNECTED;
}
/**
 * 判斷當前網(wǎng)絡(luò)是否正在連接
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)是否正在連接
 */
public static boolean isConnectingByState(Context context) {
    return getCurrentNetworkState(context) == NetworkInfo.State.CONNECTING;
}
/**
 * 判斷當前網(wǎng)絡(luò)是否已經(jīng)斷開
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)是否已經(jīng)斷開
 */
public static boolean isDisconnectedByState(Context context) {
    return getCurrentNetworkState(context) ==
        NetworkInfo.State.DISCONNECTED;
}
/**
 * 判斷當前網(wǎng)絡(luò)是否正在斷開
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)是否正在斷開
 */
public static boolean isDisconnectingByState(Context context) {
    return getCurrentNetworkState(context) ==
        NetworkInfo.State.DISCONNECTING;
}
/**
 * 判斷當前網(wǎng)絡(luò)是否已經(jīng)暫停
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)是否已經(jīng)暫停
 */
public static boolean isSuspendedByState(Context context) {
    return getCurrentNetworkState(context) == NetworkInfo.State.SUSPENDED;
}
/**
 * 判斷當前網(wǎng)絡(luò)是否處于未知狀態(tài)中
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)是否處于未知狀態(tài)中
 */
public static boolean isUnknownByState(Context context) {
    return getCurrentNetworkState(context) == NetworkInfo.State.UNKNOWN;
}
/**
 * 判斷當前網(wǎng)絡(luò)的類型是否是藍牙
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)的類型是否是藍牙。false:當前沒有網(wǎng)絡(luò)連接或者網(wǎng)絡(luò)類型不是藍牙
 */
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
public static boolean isBluetoothByType(Context context) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2) {
        return false;
    }
    else {
        return getCurrentNetworkType(context) ==
            ConnectivityManager.TYPE_BLUETOOTH;
    }
}
/**
 * 判斷當前網(wǎng)絡(luò)的類型是否是虛擬網(wǎng)絡(luò)
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)的類型是否是虛擬網(wǎng)絡(luò)。false:當前沒有網(wǎng)絡(luò)連接或者網(wǎng)絡(luò)類型不是虛擬網(wǎng)絡(luò)
 */
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public static boolean isDummyByType(Context context) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2) {
        return false;
    }
    else {
        return getCurrentNetworkType(context) ==
            ConnectivityManager.TYPE_DUMMY;
    }
}
/**
 * 判斷當前網(wǎng)絡(luò)的類型是否是ETHERNET
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)的類型是否是ETHERNET。false:當前沒有網(wǎng)絡(luò)連接或者網(wǎng)絡(luò)類型不是ETHERNET
 */
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
public static boolean isEthernetByType(Context context) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2) {
        return false;
    }
    else {
        return getCurrentNetworkType(context) ==
            ConnectivityManager.TYPE_ETHERNET;
    }
}
/**
 * 判斷當前網(wǎng)絡(luò)的類型是否是移動網(wǎng)絡(luò)
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)的類型是否是移動網(wǎng)絡(luò)。false:當前沒有網(wǎng)絡(luò)連接或者網(wǎng)絡(luò)類型不是移動網(wǎng)絡(luò)
 */
public static boolean isMobileByType(Context context) {
    return getCurrentNetworkType(context) ==
        ConnectivityManager.TYPE_MOBILE;
}
/**
 * 判斷當前網(wǎng)絡(luò)的類型是否是MobileDun
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)的類型是否是MobileDun。false:當前沒有網(wǎng)絡(luò)連接或者網(wǎng)絡(luò)類型不是MobileDun
 */
public static boolean isMobileDunByType(Context context) {
    return getCurrentNetworkType(context) ==
        ConnectivityManager.TYPE_MOBILE_DUN;
}
/**
 * 判斷當前網(wǎng)絡(luò)的類型是否是MobileHipri
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)的類型是否是MobileHipri。false:當前沒有網(wǎng)絡(luò)連接或者網(wǎng)絡(luò)類型不是MobileHipri
 */
public static boolean isMobileHipriByType(Context context) {
    return getCurrentNetworkType(context) ==
        ConnectivityManager.TYPE_MOBILE_HIPRI;
}
/**
 * 判斷當前網(wǎng)絡(luò)的類型是否是MobileMms
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)的類型是否是MobileMms。false:當前沒有網(wǎng)絡(luò)連接或者網(wǎng)絡(luò)類型不是MobileMms
 */
public static boolean isMobileMmsByType(Context context) {
    return getCurrentNetworkType(context) ==
        ConnectivityManager.TYPE_MOBILE_MMS;
}
/**
 * 判斷當前網(wǎng)絡(luò)的類型是否是MobileSupl
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)的類型是否是MobileSupl。false:當前沒有網(wǎng)絡(luò)連接或者網(wǎng)絡(luò)類型不是MobileSupl
 */
public static boolean isMobileSuplByType(Context context) {
    return getCurrentNetworkType(context) ==
        ConnectivityManager.TYPE_MOBILE_SUPL;
}
/**
 * 判斷當前網(wǎng)絡(luò)的類型是否是Wifi
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)的類型是否是Wifi。false:當前沒有網(wǎng)絡(luò)連接或者網(wǎng)絡(luò)類型不是wifi
 */
public static boolean isWifiByType(Context context) {
    return getCurrentNetworkType(context) == ConnectivityManager.TYPE_WIFI;
}
/**
 * 判斷當前網(wǎng)絡(luò)的類型是否是Wimax
 *
 * @param context 上下文
 * @return 當前網(wǎng)絡(luò)的類型是否是Wimax。false:當前沒有網(wǎng)絡(luò)連接或者網(wǎng)絡(luò)類型不是Wimax
 */
public static boolean isWimaxByType(Context context) {
    return getCurrentNetworkType(context) == ConnectivityManager.TYPE_WIMAX;
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是1XRTT
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是1XRTT。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是1XRTT
 */
public static boolean is1XRTTBySubtype(Context context) {
    return getCurrentNetworkSubtype(context) ==
        TelephonyManager.NETWORK_TYPE_1xRTT;
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是CDMA(Either IS95A or IS95B)
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是CDMA。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是CDMA
 */
public static boolean isCDMABySubtype(Context context) {
    return getCurrentNetworkSubtype(context) ==
        TelephonyManager.NETWORK_TYPE_CDMA;
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是EDGE
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是EDGE。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是EDGE
 */
public static boolean isEDGEBySubtype(Context context) {
    return getCurrentNetworkSubtype(context) ==
        TelephonyManager.NETWORK_TYPE_EDGE;
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是EHRPD
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是EHRPD。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是EHRPD
 */
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public static boolean isEHRPDBySubtype(Context context) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
        return false;
    }
    else {
        return getCurrentNetworkSubtype(context) ==
            TelephonyManager.NETWORK_TYPE_EHRPD;
    }
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是EVDO_0
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是EVDO_0。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是EVDO_0
 */
public static boolean isEVDO_0BySubtype(Context context) {
    return getCurrentNetworkSubtype(context) ==
        TelephonyManager.NETWORK_TYPE_EVDO_0;
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是EVDO_A
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是EVDO_A。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是EVDO_A
 */
public static boolean isEVDO_ABySubtype(Context context) {
    return getCurrentNetworkSubtype(context) ==
        TelephonyManager.NETWORK_TYPE_EVDO_A;
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是EDGE
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是EVDO_B。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是EVDO_B
 */
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
public static boolean isEVDO_BBySubtype(Context context) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD) {
        return false;
    }
    else {
        return getCurrentNetworkSubtype(context) ==
            TelephonyManager.NETWORK_TYPE_EVDO_B;
    }
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是GPRS
 * EVDO_Bam context 上下文
 *
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是GPRS。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是GPRS
 */
public static boolean isGPRSBySubtype(Context context) {
    return getCurrentNetworkSubtype(context) ==
        TelephonyManager.NETWORK_TYPE_GPRS;
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是HSDPA
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是HSDPA。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是HSDPA
 */
public static boolean isHSDPABySubtype(Context context) {
    return getCurrentNetworkSubtype(context) ==
        TelephonyManager.NETWORK_TYPE_HSDPA;
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是HSPA
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是HSPA。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是HSPA
 */
public static boolean isHSPABySubtype(Context context) {
    return getCurrentNetworkSubtype(context) ==
        TelephonyManager.NETWORK_TYPE_HSPA;
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是HSPAP
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是HSPAP。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是HSPAP
 */
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
public static boolean isHSPAPBySubtype(Context context) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2) {
        return false;
    }
    else {
        return getCurrentNetworkSubtype(context) ==
            TelephonyManager.NETWORK_TYPE_HSPAP;
    }
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是HSUPA
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是HSUPA。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是HSUPA
 */
public static boolean isHSUPABySubtype(Context context) {
    return getCurrentNetworkSubtype(context) ==
        TelephonyManager.NETWORK_TYPE_HSUPA;
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是IDEN
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是IDEN。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是IDEN
 */
public static boolean isIDENBySubtype(Context context) {
    return getCurrentNetworkSubtype(context) ==
        TelephonyManager.NETWORK_TYPE_IDEN;
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是LTE
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是LTE。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是LTE
 */
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public static boolean isLTEBySubtype(Context context) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
        return false;
    }
    else {
        return getCurrentNetworkSubtype(context) ==
            TelephonyManager.NETWORK_TYPE_LTE;
    }
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是UMTS
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是UMTS。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是UMTS
 */
public static boolean isUMTSBySubtype(Context context) {
    return getCurrentNetworkSubtype(context) ==
        TelephonyManager.NETWORK_TYPE_UMTS;
}
/**
 * 判斷當前網(wǎng)絡(luò)的具體類型是否是UNKNOWN
 *
 * @param context 上下文
 * @return false:當前網(wǎng)絡(luò)的具體類型是否是UNKNOWN。false:當前沒有網(wǎng)絡(luò)連接或者具體類型不是UNKNOWN
 */
public static boolean isUNKNOWNBySubtype(Context context) {
    return getCurrentNetworkSubtype(context) ==
        TelephonyManager.NETWORK_TYPE_UNKNOWN;
}
/**
 * 判斷當前網(wǎng)絡(luò)是否是中國移動2G網(wǎng)絡(luò)
 *
 * @param context 上下文
 * @return false:不是中國移動2G網(wǎng)絡(luò)或者當前沒有網(wǎng)絡(luò)連接
 */
public static boolean isChinaMobile2G(Context context) {
    return isEDGEBySubtype(context);
}
/**
 * 判斷當前網(wǎng)絡(luò)是否是中國聯(lián)通2G網(wǎng)絡(luò)
 *
 * @param context 上下文
 * @return false:不是中國聯(lián)通2G網(wǎng)絡(luò)或者當前沒有網(wǎng)絡(luò)連接
 */
public static boolean isChinaUnicom2G(Context context) {
    return isGPRSBySubtype(context);
}
/**
 * 判斷當前網(wǎng)絡(luò)是否是中國聯(lián)通3G網(wǎng)絡(luò)
 *
 * @param context 上下文
 * @return false:不是中國聯(lián)通3G網(wǎng)絡(luò)或者當前沒有網(wǎng)絡(luò)連接
 */
public static boolean isChinaUnicom3G(Context context) {
    return isHSDPABySubtype(context) || isUMTSBySubtype(context);
}
/**
 * 判斷當前網(wǎng)絡(luò)是否是中國電信2G網(wǎng)絡(luò)
 *
 * @param context 上下文
 * @return false:不是中國電信2G網(wǎng)絡(luò)或者當前沒有網(wǎng)絡(luò)連接
 */
public static boolean isChinaTelecom2G(Context context) {
    return isCDMABySubtype(context);
}
/**
 * 判斷當前網(wǎng)絡(luò)是否是中國電信3G網(wǎng)絡(luò)
 *
 * @param context 上下文
 * @return false:不是中國電信3G網(wǎng)絡(luò)或者當前沒有網(wǎng)絡(luò)連接
 */
public static boolean isChinaTelecom3G(Context context) {
    return isEVDO_0BySubtype(context) || isEVDO_ABySubtype(context) ||
        isEVDO_BBySubtype(context);
}
/**
 * 獲取Wifi的狀態(tài),需要ACCESS_WIFI_STATE權(quán)限
 *
 * @param context 上下文
 * @return 取值為WifiManager中的WIFI_STATE_ENABLED、WIFI_STATE_ENABLING、WIFI_STATE_DISABLED、WIFI_STATE_DISABLING、WIFI_STATE_UNKNOWN之一
 * @throws Exception 沒有找到wifi設(shè)備
 */
public static int getWifiState(Context context) throws Exception {
    WifiManager wifiManager = ((WifiManager) context.getSystemService(
        Context.WIFI_SERVICE));
    if (wifiManager != null) {
        return wifiManager.getWifiState();
    }
    else {
        throw new Exception("wifi device not found!");
    }
}

/**
 * 判斷Wifi是否打開,需要ACCESS_WIFI_STATE權(quán)限
 *
 * @param context 上下文
 * @return true:打開;false:關(guān)閉
 */
public static boolean isWifiOpen(Context context) throws Exception {
    int wifiState = getWifiState(context);
    return wifiState == WifiManager.WIFI_STATE_ENABLED ||
        wifiState == WifiManager.WIFI_STATE_ENABLING
        ? true
        : false;
}
/**
 * 設(shè)置Wifi,需要CHANGE_WIFI_STATE權(quán)限
 *
 * @param context 上下文
 * @param enable wifi狀態(tài)
 * @return 設(shè)置是否成功
 */
public static boolean setWifi(Context context, boolean enable)
    throws Exception {
    //如果當前wifi的狀態(tài)和要設(shè)置的狀態(tài)不一樣
    if (isWifiOpen(context) != enable) {
        ((WifiManager) context.getSystemService(
            Context.WIFI_SERVICE)).setWifiEnabled(enable);
    }
    return true;
}

/**
 * 判斷移動網(wǎng)絡(luò)是否打開,需要ACCESS_NETWORK_STATE權(quán)限
 *
 * @param context 上下文
 * @return true:打開;false:關(guān)閉
 */
public static boolean isMobileNetworkOpen(Context context) {
    return (((ConnectivityManager) context.getSystemService(
        Context.CONNECTIVITY_SERVICE)).getNetworkInfo(
        ConnectivityManager.TYPE_MOBILE)).isConnected();
}

/**
 * 獲取本機IP地址
 *
 * @return null:沒有網(wǎng)絡(luò)連接
 */
public static String getIpAddress() {
    try {
        NetworkInterface nerworkInterface;
        InetAddress inetAddress;
        for (Enumeration en
             = NetworkInterface.getNetworkInterfaces();
             en.hasMoreElements(); ) {
            nerworkInterface = en.nextElement();
            for (Enumeration enumIpAddr
                 = nerworkInterface.getInetAddresses();
                 enumIpAddr.hasMoreElements(); ) {
                inetAddress = enumIpAddr.nextElement();
                if (!inetAddress.isLoopbackAddress()) {
                    return inetAddress.getHostAddress().toString();
                }
            }
        }
        return null;
    } catch (SocketException ex) {
        ex.printStackTrace();
        return null;
    }
}

/**
 * 設(shè)置數(shù)據(jù)流量狀態(tài)
 * @param context
 * @param enabled
 */
public static void setDataEnabled(Context context, boolean enabled) {
    ConnectivityManager conMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    Class conMgrClass = null;
    Field iConMgrField = null;
    Object iConMgr = null;
    Class iConMgrClass = null;
    Method setMobileDataEnabledMethod = null;
    try {
        conMgrClass = Class.forName(conMgr.getClass().getName());
        iConMgrField = conMgrClass.getDeclaredField("mService");
        iConMgrField.setAccessible(true);
        iConMgr = iConMgrField.get(conMgr);
        iConMgrClass = Class.forName(iConMgr.getClass().getName());
        setMobileDataEnabledMethod = iConMgrClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
        setMobileDataEnabledMethod.setAccessible(true);
        setMobileDataEnabledMethod.invoke(iConMgr, enabled);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

/**
 * 獲取wifi列表
 * @param context
 * @return
 */
public static List getWifiScanResults(Context context) {
    WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    return wifiManager.startScan() ? wifiManager.getScanResults() : null;
}

/**
 * 過濾掃描結(jié)果
 * @param context
 * @param bssid
 * @return
 */
public static ScanResult getScanResultsByBSSID(Context context, String bssid) {
    WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    ScanResult scanResult = null;
    boolean f = wifiManager.startScan();
    if (!f) {
        getScanResultsByBSSID(context, bssid);
    }
    List list = wifiManager.getScanResults();
    if (list != null) {
        for (int i = 0; i < list.size(); i++) {
            scanResult = list.get(i);
            if (scanResult.BSSID.equals(bssid)) {
                break;
            }
        }
    }
    return scanResult;
}

/**
 * 獲取wifi連接信息
 * @param context
 * @return
 */
public static WifiInfo getWifiConnectionInfo(Context context) {
    WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    return wifiManager.getConnectionInfo();
}

/**
 * 獲得Proxy地址
 *
 * @param context 上下文
 * @return Proxy地址
 */
public static String getProxy(Context context) {
    String proxy = null;
    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivityManager != null) {
        NetworkInfo networkinfo = connectivityManager.getActiveNetworkInfo();
        if (networkinfo != null && networkinfo.isAvailable()) {
            String stringExtraInfo = networkinfo.getExtraInfo();
            if (stringExtraInfo != null && ("cmwap".equals(stringExtraInfo) || "uniwap".equals(stringExtraInfo))) {
                proxy = "10.0.0.172:80";
            } else if (stringExtraInfo != null && "ctwap".equals(stringExtraInfo)) {
                proxy = "10.0.0.200:80";
            }
        }
    }
    return proxy;
}

}

終點站

??好了,終點站到了,如果對本次旅途滿意的話,請給五星好評哦,沒關(guān)注的小伙伴輕輕點個上方的關(guān)注,畢竟老司機犧牲了很多時間才換來這么一份工具類,如果該工具類依賴其他工具類,都可以在我的史上最全的常用開發(fā)工具類收集(持續(xù)更新中)中找到。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/67971.html

相關(guān)文章

  • ios APP 測試思考點

    摘要:使用過程中,接聽電話。可以測試不同的通話時間的長短,對于通話結(jié)束后,原先打開的的響應(yīng),比如是否停留在原先界面,繼續(xù)操作時的響應(yīng)速度,也可查看在不同和數(shù)據(jù)的情況下模擬電話。 1、app使用過程中,接聽電話。可以測試不同的通話時間的長短,對于通話結(jié)束后,原先打開的app的響應(yīng),比如是否停留在原先界面,繼續(xù)操作時的響應(yīng)速度,也可查看在不同WiFi 和數(shù)據(jù)的情況下模擬電話。 2、app使用過程...

    Simon_Zhou 評論0 收藏0

發(fā)表評論

0條評論

only_do

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<