Android网络类型检测与连接速度评估
我需要检测当前的网络类型,并在此基础上假设可能的速度 基于此, 我已经能够使用3G/2G的getSubtype()功能检测速度 但是无线和蓝牙呢 我可以使用Android网络类型检测与连接速度评估,android,bluetooth,wifi,3g,Android,Bluetooth,Wifi,3g,我需要检测当前的网络类型,并在此基础上假设可能的速度 基于此, 我已经能够使用3G/2G的getSubtype()功能检测速度 但是无线和蓝牙呢 我可以使用ConnectivityManager.TYPE_bluetooth和ConnectivityManager.TYPE_WIFI 但是,假设蓝牙和WIFI提供了互联网源,那么是否有可能通过蓝牙和WIFI检测可能的速度呢 可能正在使用信号强度?这将适用于移动连接(info.getType()==ConnectivityManager.TYPE\
ConnectivityManager.TYPE_bluetooth
和ConnectivityManager.TYPE_WIFI
但是,假设蓝牙和WIFI提供了互联网源,那么是否有可能通过蓝牙和WIFI检测可能的速度呢
可能正在使用信号强度?这将适用于移动连接(info.getType()==ConnectivityManager.TYPE\u mobile)
getSubtype是否适用于WIFI和BLUETOOTH?“返回描述网络子类型的网络类型特定整数。”->我认为是这样。如果getSubtype()适用于BLUETOOTH/WIFI。。。。EDGE、CDMA、GPRS、UMTS是否适用?或者它有不同的值?我不确定WIFI和BLUETOOTH是否有子类型()可用于速度检测。我想你是对的,我的答案只适用于移动设备:if info.getType()==ConnectivityManager.TYPE\u mobile
ConnectivityManager cm = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
Integer subType = info.getSubtype();
switch (subType) {
case TelephonyManager.NETWORK_TYPE_1xRTT:
return "50-100 kbps";
case TelephonyManager.NETWORK_TYPE_CDMA:
return "14-64 kbps";
case TelephonyManager.NETWORK_TYPE_UMTS:
return "400-7000 kbps";
NETWORK_TYPE_1xRTT = ~ 50-100 kbps
NETWORK_TYPE_CDMA = ~ 14-64 kbps
NETWORK_TYPE_EDGE = ~ 50-100 kbps
NETWORK_TYPE_EVDO_0 = ~ 400-1000 kbps
NETWORK_TYPE_EVDO_A = ~ 600-1400 kbps
NETWORK_TYPE_GPRS = ~ 100 kbps
NETWORK_TYPE_HSDPA = ~ 2-14 Mbps
NETWORK_TYPE_HSPA = ~ 700-1700 kbps
NETWORK_TYPE_HSUPA = ~ 1-23 Mbps
NETWORK_TYPE_UMTS = ~ 400-7000 kbps
NETWORK_TYPE_EHRPD = ~ 1-2 Mbps
NETWORK_TYPE_EVDO_B = ~ 5 Mbps
NETWORK_TYPE_HSPAP = ~ 10-20 Mbps
NETWORK_TYPE_IDEN = ~ 25 kbps
NETWORK_TYPE_LTE = ~ 10+ Mbps