NetworkInfo子类型值

 双赢糖 发布于 2022-12-26 20:24

如果我开始通过Wi-Fi的应用和我切换到3G,它打印0,15,所以它的移动网络,但我不知道为什么亚型手段.然后我切换回Wi-Fi并打印0,3秒(移动网络,NETWORK_TYPE_UMTS)并显示我已连接到我的UI上的移动网络,最终连接到Wi-Fi并打印1, 0.那么15意味着什么?文档没有说明这些价值观是什么.

if (networkInfo != null && networkInfo.isConnected()) {
    int netType = networkInfo.getType();
    int netSubtype = networkInfo.getSubtype();

    Log.d("Receiver", String.valueOf(netType));
    Log.d("Receiver", String.valueOf(netSubtype));

    if (netType == ConnectivityManager.TYPE_WIFI) {
        Log.i("Receiver", "WiFi");
    } else if (netType == ConnectivityManager.TYPE_MOBILE
            && netSubtype == TelephonyManager.NETWORK_TYPE_UMTS
            && !telephonyManager.isNetworkRoaming()) {
        Log.i("Receiver", "Mobile");
    }
}

http://developer.android.com/reference/android/net/NetworkInfo.html#getSubtype()

1 个回答
  • So what does 15 means?
    

    这意味着通过移动连接的互联网连接速度有多快,实际上是常数15 HSPA+

    HSPA+ (also called Evolved HSPA or 4G) is a further evolution of 
    HSPA that offers data speeds of up to 42 Mbps.
    

    你可以去这篇文章

    示例代码:

    if(type==ConnectivityManager.TYPE_WIFI){
            return true;
        }else if(type==ConnectivityManager.TYPE_MOBILE){
            switch(subType){
            case TelephonyManager.NETWORK_TYPE_1xRTT:
                return false; // ~ 50-100 kbps
            case TelephonyManager.NETWORK_TYPE_CDMA:
                return false; // ~ 14-64 kbps
            case TelephonyManager.NETWORK_TYPE_EDGE:
                return false; // ~ 50-100 kbps
            case TelephonyManager.NETWORK_TYPE_EVDO_0:
                return true; // ~ 400-1000 kbps
            case TelephonyManager.NETWORK_TYPE_EVDO_A:
                return true; // ~ 600-1400 kbps
            case TelephonyManager.NETWORK_TYPE_GPRS:
                return false; // ~ 100 kbps
            case TelephonyManager.NETWORK_TYPE_HSDPA:
                return true; // ~ 2-14 Mbps
            case TelephonyManager.NETWORK_TYPE_HSPA:
                return true; // ~ 700-1700 kbps
            case TelephonyManager.NETWORK_TYPE_HSUPA:
                return true; // ~ 1-23 Mbps
            case TelephonyManager.NETWORK_TYPE_UMTS:
                return true; // ~ 400-7000 kbps
            /*
             * Above API level 7, make sure to set android:targetSdkVersion 
             * to appropriate level to use these
             */
            case TelephonyManager.NETWORK_TYPE_EHRPD: // API level 11 
                return true; // ~ 1-2 Mbps
            case TelephonyManager.NETWORK_TYPE_EVDO_B: // API level 9
                return true; // ~ 5 Mbps
            case TelephonyManager.NETWORK_TYPE_HSPAP: // API level 13
                return true; // ~ 10-20 Mbps
            case TelephonyManager.NETWORK_TYPE_IDEN: // API level 8
                return false; // ~25 kbps 
            case TelephonyManager.NETWORK_TYPE_LTE: // API level 11
                return true; // ~ 10+ Mbps
            // Unknown
            case TelephonyManager.NETWORK_TYPE_UNKNOWN:
            default:
                return false;
            }
    

    看看NETWORK_TYPE_HSPAP它有连接速度10-20 Mbps

    2022-12-26 20:28 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有