android 取网络类型的,Android获取网络类型--最新最全版

public static String getNetworkState(Context context) {

ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); // 获取网络服务

if (null == connManager) { // 为空则认为无网络

return NETWORK_OTHER;

}

// 获取网络类型,如果为空,返回无网络

NetworkInfo activeNetInfo = connManager.getActiveNetworkInfo();

if (activeNetInfo == null || !activeNetInfo.isAvailable()) {

return NETWORK_OTHER;

}

// 判断是否为WIFI

NetworkInfo wifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if (null != wifiInfo) {

NetworkInfo.State state = wifiInfo.getState();

if (null != state) {

if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) {

return NETWORK_WIFI;

}

}

}

// 若不是WIFI,则去判断是2G、3G、4G网

TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

if (telephonyManager == null) return NETWORK_OTHER;

int networkType = telephonyManager.getNetworkType();

switch (networkType) {

/*

GPRS : 2G(2.5) General Packet Radia Service 114kbps

EDGE : 2G(2.75G) Enhanced Data Rate for GSM Evolution 384kbps

UMTS : 3G WCDMA 联通3G Universal Mobile Telecommunication System 完整的3G移动通信技术标准

CDMA : 2G 电信 Code Division Multiple Access 码分多址

EVDO_0 : 3G (EVDO 全程 CDMA2000 1xEV-DO) Evolution - Data Only (Data Optimized) 153.6kps - 2.4mbps 属于3G

EVDO_A : 3G 1.8mbps - 3.1mbps 属于3G过渡,3.5G

1xRTT : 2G CDMA2000 1xRTT (RTT - 无线电传输技术) 144kbps 2G的过渡,

HSDPA : 3.5G 高速下行分组接入 3.5G WCDMA High Speed Downlink Packet Access 14.4mbps

HSUPA : 3.5G High Speed Uplink Packet Access 高速上行链路分组接入 1.4 - 5.8 mbps

HSPA : 3G (分HSDPA,HSUPA) High Speed Packet Access

IDEN : 2G Integrated Dispatch Enhanced Networks 集成数字增强型网络 (属于2G,来自维基百科)

EVDO_B : 3G EV-DO Rev.B 14.7Mbps 下行 3.5G

LTE : 4G Long Term Evolution FDD-LTE 和 TDD-LTE , 3G过渡,升级版 LTE Advanced 才是4G

EHRPD : 3G CDMA2000向LTE 4G的中间产物 Evolved High Rate Packet Data HRPD的升级

HSPAP : 3G HSPAP 比 HSDPA 快些

*/

// 2G网络

case TelephonyManager.NETWORK_TYPE_GPRS:

case TelephonyManager.NETWORK_TYPE_CDMA:

case TelephonyManager.NETWORK_TYPE_EDGE:

case TelephonyManager.NETWORK_TYPE_1xRTT:

case TelephonyManager.NETWORK_TYPE_IDEN:

return NETWORK_2G;

// 3G网络

case TelephonyManager.NETWORK_TYPE_EVDO_A:

case TelephonyManager.NETWORK_TYPE_UMTS:

case TelephonyManager.NETWORK_TYPE_EVDO_0:

case TelephonyManager.NETWORK_TYPE_HSDPA:

case TelephonyManager.NETWORK_TYPE_HSUPA:

case TelephonyManager.NETWORK_TYPE_HSPA:

case TelephonyManager.NETWORK_TYPE_EVDO_B:

case TelephonyManager.NETWORK_TYPE_EHRPD:

case TelephonyManager.NETWORK_TYPE_HSPAP:

return NETWORK_3G;

// 4G网络

case TelephonyManager.NETWORK_TYPE_LTE:

case 19:// 聚波载合 4G+

return NETWORK_4G;

// 5G

// case TelephonyManager.NETWORK_TYPE_NR:// 需要 SdkVersion>=29

case 20:// 当 SdkVersion<=28 直接写20

return NETWORK_5G;

default:

return NETWORK_OTHER;

}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值