摘要:安卓開發(fā)一般都需要進行日志管理,常用操作老司機已為你封裝完畢,你可以用這份工具進行管理,具體可以查看源碼,現(xiàn)在為你開車,傳送門。當前沒有網(wǎng)絡(luò)連接時返回獲取當前網(wǎng)絡(luò)的具體類型上下文當前網(wǎng)絡(luò)的具體類型。
??安卓開發(fā)一般都需要進行日志管理,常用操作老司機已為你封裝完畢,你可以用這份工具進行管理,具體可以查看源碼,現(xiàn)在為你開車,Demo傳送門。
站點 系統(tǒng)日志輸出工具類 → AppKeyBoardMgrgetNetworkState : 獲取當前手機連接的網(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 (Enumerationen = 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
摘要:使用過程中,接聽電話。可以測試不同的通話時間的長短,對于通話結(jié)束后,原先打開的的響應(yīng),比如是否停留在原先界面,繼續(xù)操作時的響應(yīng)速度,也可查看在不同和數(shù)據(jù)的情況下模擬電話。 1、app使用過程中,接聽電話。可以測試不同的通話時間的長短,對于通話結(jié)束后,原先打開的app的響應(yīng),比如是否停留在原先界面,繼續(xù)操作時的響應(yīng)速度,也可查看在不同WiFi 和數(shù)據(jù)的情況下模擬電話。 2、app使用過程...
閱讀 2582·2021-11-25 09:43
閱讀 1855·2021-09-22 15:26
閱讀 3723·2019-08-30 15:56
閱讀 1710·2019-08-30 15:55
閱讀 1892·2019-08-30 15:54
閱讀 810·2019-08-30 15:52
閱讀 3154·2019-08-29 16:23
閱讀 891·2019-08-29 12:43