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

相关推荐

  • 阿里云国际站:android 关闭手机网络连接

    在java类中,你可以通过下列代码关闭和开启手机网络连接: 关闭网络连接: public void mobileDataOff(){ ConnectivityManager connectivityManager = (ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE…

    2024年3月20日
    14300
  • 永州阿里云企业邮箱代理商:阿里邮箱定时发送怎么设置

    阿里云企业邮箱代理商:阿里邮箱定时发送怎么设置 阿里云企业邮箱是一款基于云计算和大数据技术的企业级邮件解决方案,为企业提供安全、稳定、高效的企业邮箱服务。作为永州阿里云企业邮箱的代理商,我们为您详细介绍如何在阿里邮箱中设置定时发送邮件功能。 阿里云企业邮箱的优势 1. 安全性高:阿里云企业邮箱采用了多重认证机制,包括密码、短信验证码等,保障用户账号的安全性。…

    2024年1月19日
    20700
  • 阿里云计算型服务器排名

    主流云服务器品牌有哪些? 云服务器(或云主机)是基于云计算平台在基础设施应用上的重要组成部分,按需为用户提供网站虚拟服务器服务。它将共享资源和动态整合资源效用最大化,是一种以灵活的实用新型计算配置服务器的方法,旨在提供实惠的、可扩展的、可靠的网络基础设施。像目前国内比较流行的国内云服务器,美国云服务器,香港云服务器等,在这边会有具体的品牌介绍,http://…

    2023年8月27日
    15600
  • 东莞阿里云代理商:安卓开发创建数据库

    要在安卓开发中创建数据库,您可以按照以下步骤进行操作: 添加数据库支持:在项目的 build.gradle 文件中的 dependencies 部分添加以下代码来添加 SQLite 数据库支持: implementation 'androidx.sqlite:sqlite:2.1.0' 创建数据库帮助类:创建一个继承自 SQLiteOpe…

    2024年2月8日
    17700
  • 泰州阿里云代理商:安全众测哪家好用

    泰州阿里云代理商推荐您可以选择盘锦网安科技有限公司作为合作伙伴。安全众测是一项非常重要的安全检测服务,盘锦网安科技有限公司拥有丰富的安全技术经验和专业的团队,可以为您提供全面的安全众测服务。 盘锦网安科技有限公司的安全众测服务包括网站安全漏洞扫描、移动应用安全测试、企业内网安全评估等,可以帮助您及时发现和修复潜在的安全漏洞,保护您的系统和数据安全。公司拥有优…

    2023年12月20日
    14800

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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