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

相关推荐

  • 榆林阿里云代理商:阿里云官方网站双11活动

    榆林阿里云代理商作为阿里云的合作伙伴,在双11活动中为榆林地区的客户提供一系列优惠和服务。阿里云官方网站的双11活动通常包括以下内容: 云服务器(ECS)折扣:榆林地区的客户可以享受云服务器购买的折扣优惠。这包括折扣码、满减活动和赠品等。 数据库、存储、网络等产品的折扣:除了云服务器,阿里云的其他产品也会参与双11折扣活动。客户可以享受数据库服务、对象存储、…

    2023年12月20日
    37500
  • 商丘阿里云代理商:阿里云买的免费企业邮箱绑定域名后怎么开通

    要开通阿里云买的免费企业邮箱绑定域名,需要按照以下步骤进行操作: 登录阿里云控制台,进入企业邮箱管理控制台。 在企业邮箱管理控制台中,找到已绑定域名的企业邮箱账号。 点击对应邮箱账号的“管理”按钮,进入企业邮箱管理页面。 在企业邮箱管理页面中,选择“域名设置”选项。 在域名设置页面中,选择“邮箱开通设置”。 在邮箱开通设置页面中,选择“开通邮箱”。 在开通邮…

    2023年12月17日
    34000
  • 柳州阿里云代理商:android 6.0 接收短信

    要在Android 6.0上接收短信,您需要获得”READ_SMS”和”RECEIVE_SMS”权限。 首先,在您的AndroidManifest.xml文件中添加以下权限声明: <uses-permission android:name="android.permission.READ_SMS…

    2024年2月12日
    33900
  • 阿里巴巴龙门云计算中心永汉镇项目

    永汉镇前锋村飞鹅地是属于龙门县的县中心吗? 不是,永汉镇前锋村飞鹅地可以算得上是龙门县的最南端了,离县城很远的,离增城更近。快递的话可能只有EMS了。 永汉镇前锋村飞鹅地是属于龙门县的县中心吗? 不是,永汉镇前锋村飞鹅地可以算得上是龙门县的最南端了,离县城很远的,离增城更近。快递的话可能只有EMS了。

    2023年8月29日
    45700
  • 物联网云平台主要的四大组件

    物联网由哪几部分组成 1、物联网的定义:物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互联互通的网络。2、物联网的组成:物联网大致可以分为以下四个层面,即:感知层、网络层、平台层以及应用层。具体如下:(1)、感知识别层。感知层是物联网整体架构的基础,是物理世界和信息世界融合的重要一环。在感知层,我们可以通过传感器感…

    2023年8月29日
    37800

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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