阿里云国际站: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

相关推荐

  • 阿里云短信认证接口

    阿里云短信认证接口是阿里云提供的一种短信验证服务,可以用于快速实现手机验证码认证、用户注册、登录、找回密码等功能。使用阿里云短信认证接口,开发者可以通过调用API接口的方式,向用户发送短信验证码,并验证用户输入的验证码是否正确。 使用阿里云短信认证接口需要以下步骤: 登录阿里云控制台,开通短信签名和模板。 调用阿里云短信API接口,发送短信验证码给用户手机。…

    2023年9月18日
    28500
  • 青岛阿里云代理商:阿里云直播平台

    阿里云直播平台是阿里云推出的一项云直播服务,旨在帮助用户轻松搭建和运营自己的直播平台。作为青岛的阿里云代理商,我们提供以下服务: 阿里云直播平台的咨询和介绍:我们可以向您介绍阿里云直播平台的功能和特点,帮助您了解如何利用该平台开展直播业务。 平台部署和配置:我们可以根据您的需求,协助您在阿里云上部署和配置直播平台,确保平台正常运行和提供优质的直播服务。 平台…

    2024年1月6日
    25800
  • 怎么开放阿里云服务器的80端口

    阿里云服务器怎么设置8080端口 是服务器上开的某个服务换到8080端口还是阿里云安全组开放8080端口?前者的话建议你搜索对应软件名字+改到8080端口看看别人是怎么改的。后者的话可以进入阿里云官网-控制台-云服务器-安全组-找到对应服务器包含的安全组-配置-公网出方向+公网入方向 那里按照提示设置。 阿里云服务器默认用8080能打开,请问怎么切换成80端…

    2023年8月28日
    24400
  • 长春阿里云代理商:asp动态网站制作实…

    阿里云代理商是指获得阿里云合作伙伴资格的公司或个人,他们可以代理销售阿里云的产品和服务,并提供相关的技术支持。 ASP动态网站制作是一种基于ASP(Active Server Pages)技术的网站开发方式。ASP是一种服务器端脚本语言,它可以与HTML页面结合,通过在服务器上执行脚本生成动态网页内容,最后将生成的内容发送给客户端浏览器。ASP动态网站可以根…

    2024年2月15日
    24200
  • 阿里云数据库笔试题

    很抱歉,我无法提供阿里云数据库的笔试题。阿里云数据库是阿里云推出的一种云端数据库解决方案,主要提供云数据库RDS、分布式数据库POLARDB、NoSQL数据库表格存储等服务。笔试题具体内容可能与数据库的使用、管理、性能优化等相关,建议您参考阿里云数据库官方文档或者通过其他途径获取相关的笔试题。 阿里云数据库有哪些特点和优势?请详细讲述。 高可用性:阿里云数据…

    2023年10月1日
    29000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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