阿里云国际站:android 判断手机网络类型的

在Android中,可以通过ConnectivityManagerNetworkInfo类,判断手机目前正在使用的网络类型。以下给出示例代码:

public String getNetworkType(Context context) {
    String strNetworkType = "";
    
    NetworkInfo networkInfo = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
    
    if (networkInfo != null && networkInfo.isConnected()) {
        if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
            strNetworkType = "WIFI";
        } else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
            String _strSubTypeName = networkInfo.getSubtypeName();
            
            //如果是2G类型
            if (_strSubTypeName.equalsIgnoreCase("GSM") || _strSubTypeName.equalsIgnoreCase("CDMA")
                    || _strSubTypeName.equalsIgnoreCase("EDGE") || _strSubTypeName.equalsIgnoreCase("1xRTT")
                    || _strSubTypeName.equalsIgnoreCase("IDEN")) {
                strNetworkType = "2G";
            }
            //如果是3G类型
            else if (_strSubTypeName.equalsIgnoreCase("UMTS") || _strSubTypeName.equalsIgnoreCase("EVDO_0")
                    || _strSubTypeName.equalsIgnoreCase("EVDO_A") || _strSubTypeName.equalsIgnoreCase("HSDPA")
                    || _strSubTypeName.equalsIgnoreCase("HSUPA") || _strSubTypeName.equalsIgnoreCase("HSPA")
                    || _strSubTypeName.equalsIgnoreCase("EVDO_B") || _strSubTypeName.equalsIgnoreCase("EHRPD")
                    || _strSubTypeName.equalsIgnoreCase("HSPAP")) {
                strNetworkType = "3G";
            }
            //如果是4G类型
            else if (_strSubTypeName.equalsIgnoreCase("LTE") || _strSubTypeName.equalsIgnoreCase("UMB")
                    || _strSubTypeName.equalsIgnoreCase("HSPA+")) {
                strNetworkType = "4G";
            }
            //Unknown
            else {
                strNetworkType = _strSubTypeName;
            }
        }
    }
    
    return strNetworkType;
}

请注意,这些代码需要ACCESS_NETWORK_STATE权限,因此请在您的manifest.xml中添加此行:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

上述代码主要是使用了ConnectivityManager来获取当前活跃的网络连接信息,然后通过判断网络类型和子类型名称来判断手机正在使用的具体网络类型。

阿里云国际站:android 判断手机网络类型的

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/170528.html

(0)
luotuoemo的头像luotuoemo
上一篇 2024年3月23日 05:03
下一篇 2024年3月23日 05:17

相关推荐

  • 江门阿里云代理商:阿里云 pip超时

    阿里云的pip超时可能是由于网络不稳定或者防火墙的限制造成的。以下是解决方案: 检查网络连接:确保网络正常连接,可以尝试重新连接或者更换网络环境。 检查防火墙设置:防火墙可能会阻止pip的连接,可以暂时关闭防火墙或者将阿里云的相关域名添加到信任列表中。 更换源地址:可以尝试切换pip的源地址,使用国内镜像源或者阿里云提供的pip源地址。 使用代理服务器:可以…

    2024年2月10日
    82500
  • 随县阿里云代理商:阿里云CDN如何应对网络劫持和篡改?

    阿里云CDN采取了多种措施来应对网络劫持和篡改,确保用户的网站和内容传输的安全性和完整性。以下是一些常见的应对措施: SSL/TLS加密:阿里云CDN支持SSL/TLS协议,通过加密传输数据,防止被篡改和窃取。用户可以通过配置证书来启用HTTPS传输,确保用户和网站之间的数据传输安全。 内容完整性校验:阿里云CDN通过MD5或SHA-256等算法对内容进行完…

    2023年11月18日
    70900
  • 淄博阿里云代理商:administration

    淄博阿里云代理商是一家代理和提供阿里云产品和服务的公司。代理商负责管理和销售阿里云产品,并为客户提供技术支持和解决方案。代理商可以帮助客户选择适合的云服务、配置和管理云服务器、数据存储、网络和安全等服务。 Administration是淄博阿里云代理商的一项重要工作。代理商需要进行各种管理工作,包括阿里云产品的注册和销售,客户合同的管理,客户的账户和资源管理…

    2024年1月23日
    69900
  • 阿里云云计算开发薪资

    云计算软件开发工程师工资收入多少 您好,我来为您解答:  外包软件开发工程师平均工资¥6249元/月,最低工资2K-3K,最高工资,取自3份样本.  希望我的回答对你有帮助。 深圳阿里云工资收入多少 3万以上吧,10年左右能买房,这是京东老板对员工的承诺。。 阿里云计算有限公司怎么样,技术如何?像工程师的话一般工资待遇怎么样? 那要看你的资历了 一般也在8k…

    2023年8月27日
    99200
  • 阿里云服务器

    阿里云服务器(Alibaba Cloud Server),是阿里云计算平台提供的云服务器产品。阿里云服务器是基于阿里云的强大的计算和网络资源构建而成的,用户可以根据自身需求选择不同配置的云服务器,实现在线购买和使用、弹性伸缩等功能。 阿里云服务器提供多种规格和操作系统镜像供用户选择,用户可以根据自己的业务需求选择合适的配置和操作系统。同时,阿里云提供了丰富的…

    2023年8月5日
    76900

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/