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

相关推荐

  • 张北阿里巴巴云计算数据中心招聘电话号码

    阿里巴巴在张北的云计算现在开始招人吗 看你是做哪方面的,普通的也就以前多,和医疗技术相关的(当然这些需要一定的专业知识和技能)工资会在三千到五千之间。 张家口张北阿里云计算中心是不是外包给联想了?外包员工待遇好不好? 好像是庙滩那个叫云计算,联想的,小二台那个叫数据港,阿里的

    2023年8月29日
    61000
  • 曹县阿里云企业邮箱代理商:阿里企业邮箱代理商是谁

    阿里企业邮箱代理商是谁 阿里企业邮箱作为一款专业的企业级邮箱服务,为众多企事业单位提供了高效、安全、稳定的电子邮件通讯解决方案。作为曹县阿里云企业邮箱的代理商,我们深知其卓越的优势和用户使用后的感受。 阿里云企业邮箱的优势 首先,阿里云企业邮箱具备强大的安全性。数据安全对于企业来说尤为重要,在传输、存储和访问过程中,阿里云企业邮箱采用了多层加密与防护措施,确…

    2024年1月23日
    57700
  • 阿里云国际站充值:apache http api

    阿里云国际站充值可以通过使用其官方API来实现。以下是一个使用Apache HTTP Client进行充值请求的示例代码: 使用Apache HttpClient的Java示例 首先,确保你已经添加了Apache HttpClient的依赖。对于Maven项目,你可以在pom.xml中添加以下依赖项: <dependency> <group…

    2024年7月9日
    54500
  • 泰州阿里云代理商:阿里巴巴java规范手册

    阿里巴巴JAVA规范手册是阿里巴巴Java开发人员编写的一份工程实践规范指南,该手册旨在帮助开发人员规范化Java编程风格和代码质量,提高代码的可读性、可维护性和可扩展性,是Java开发的必备参考指南。 阿里巴巴JAVA规范手册包含了Java编程中的多个方面,包括开发规范、异常处理、注释规范、命名规范、日志规范、代码格式规范、集合操作规范、安全规范、并发规范…

    2023年12月29日
    64100
  • 阿里云云计算创始人

    涂鸦智能的创始人是谁?有什么来头? 王学集。2012年入选福布斯“中国30位30岁以下创业者”。在创建涂鸦科技之前,王学集先后发起社区/云计算/O2O相关多个项目,积累了12年的创业经验。王学集2008年加入阿里集团,随后成为阿里云的第一任负责人,带领阿里云成为国内云计算的行业标杆,并先后在阿里资本与手机淘宝担任重要职位。 小智云的创始人是谁? 网上搜索是应…

    2023年8月25日
    73400

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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