首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android网络类型检测与连接速度评估

Android网络类型检测与连接速度评估
EN

Stack Overflow用户
提问于 2015-07-20 14:22:30
回答 1查看 218关注 0票数 1

我需要检测当前的网络类型,并在此基础上假设可能的速度。

基于这个Detect if connection is wifi, 3G or EDGE in android?

我已经能够使用3G/2G的getSubtype()函数来检测速度

但是对于WIFI和蓝牙呢?

我可以用ConnectivityManager.TYPE_BLUETOOTHConnectivityManager.TYPE_WIFI检测蓝牙/WIFI

但是,假设蓝牙和WIFI提供了互联网资源,是否有可能检测到可能的速度?

可能是利用信号强度?

EN

回答 1

Stack Overflow用户

发布于 2015-07-20 14:31:26

这将适用于移动连接(info.getType() == ConnectivityManager.TYPE_MOBILE)

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31518992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档