网络类型 - 运营商

android运营商和网络类型分析

2015-05-23      2 个评论    来源:LiteHeaven的专栏  

收藏    我要投稿

一些需求需要获取运营商和网络类型,下面对运营商和网络类型做分析。

先抛出一些废话的定义:

 

?

?

可见,这两者是技术标准,和网络类型及制式无关。

 

进入正题。

1.获取话机类型

这个可以通过方法TelephonyManager#getPhoneType来获得,下面是返回类型。

 

?

常用话机类型就是GSM类型和CDMA类型,SIP是和VOIP相关的东西,平时不常遇到。

 

 

2.获取运营商

TelephonyManager#getSimOperator用于获取SIM卡运营商ID,比如移动是46002

TelephonyManager#getSimOperatorName方法获取运营商名字,比如移动是CMCC

TelephonyManager#getSimCountryIso获取SIM卡国家,比如中国是cn

TelephonyManager#getSimState获取SIM卡状态

 

3.获取网络类型

重点来了。

TelephonyManager#getNetworkType方法获取网络类型。

想要确切的显示出手机当前的网络,比如“联通3G”,需要的就是这个。

在网上找了一些代码,看见一些代码在一些网络类型后面标明:“移动2G”,我只想说“呵呵”。

原因就是,从单一的网络类型是无法判断这点的。

回到正题,开始分析返回值。

 

1)NETWORK_TYPE_GPRS 1---移动联通

GPRS是一种制式,相当于2.5G,它独立于话机类型而存在,虽然移动是GSM话机,联通是CDMA话机,但是他们都可以有这种制式,

拿移动2G举例,我所在城市是EDGE网络。但是在之前,移动和联通可能有同时使用GPRS的时候,

同时也不排除部分地区移动仍然部署了GPRS的可能性,所以比较不赞同在代码后面标“移动2G”的这位前辈。

 

2)NETWORK_TYPE_EDGE 2--移动

EDGE应该算是2.75G。据我所知,联通好像没有升级2G网络到这个制式。而移动当前是在用这个。

3)NETWORK_TYPE_UMTS 3-联通WCDMA 46006

UMTS定义是一种3G移动电话技术,使用WCDMA作为底层标准,WCDMA向下兼容GSM网络。

目前中国也就只有联通了,这个确实可以唯一判断运营商及其网络类型。

4)NETWORK_TYPE_CDMA 4-电信

CDMA的定义是一种技术标准,有其2代、2.5代、3代技术。被认为是3代移动技术的首选,包含的标准有

WCDMA、CDMA2000、TD-SCDMA。这里CDMA指代CDMA2代技术标准的制式,中国电信在用。

5)NETWORK_TYPE_1xRTT 7--电信

在CDMA2000中,通常被认为是2.5G或2.75G,速率只有其他3G的几分之一,电信可能使用。

 

6)NETWORK_TYPE_EVDO_0、NETWORK_TYPE_EVDO_A、NETWORK_TYPE_EVDO_B ··5-6-12 -电信

两者都是CDMA2000标准中的版本,属于3G,电信可能使用。

7)NETWORK_TYPE_HSDPA -8----联通 46006

一种通信协议,建立在WCDMA上,相当于3.5G,联通可能使用。

8)NETWORK_TYPE_LTE -13-移动、联通、电信--4G

对应准4G,各个运营商都可能使用。13

9)NETWORK_TYPE_GSM--

这个值是隐藏的,值为16,暂时不知道什么卡会出现。猜想应该是对应GSM标准的最早期制式,没有验证。

 

10)NETWORK_TYPE_TD_SCDMA -

也是隐藏的,值为17,使用移动3G时是这个值。

结论:判断哪个运营商那种网络不应该只根据NetworkType判断。

运营商单独获取,而NetworkType可以进一步知道是2G还是3G。

其他中国不存在的制式就先不判断了。

case NETWORK_TYPE_GPRS: 1 移动联通

case NETWORK_TYPE_EDGE: 2 移动

case NETWORK_TYPE_CDMA: 4 -电信

case NETWORK_TYPE_1xRTT: 7 -电信

case NETWORK_TYPE_IDEN: 11

return NETWORK_CLASS_2_G;

case NETWORK_TYPE_UMTS: 3 -联通WCDMA 46006

case NETWORK_TYPE_EVDO_0: 5 -电信

case NETWORK_TYPE_EVDO_A: 6 -电信

case NETWORK_TYPE_HSDPA: 8 -联通 46006

case NETWORK_TYPE_HSUPA: 9

case NETWORK_TYPE_HSPA: 10

case NETWORK_TYPE_EVDO_B: 12 -电信

case NETWORK_TYPE_EHRPD: 14

case NETWORK_TYPE_HSPAP: 15

return NETWORK_CLASS_3_G;

case NETWORK_TYPE_LTE: 13 移动、联通、电信--4G

return NETWORK_CLASS_4_G;

default:

return NETWORK_CLASS_UNKNOWN;

--------------------Added in API level 1---------------------

public static final int NETWORK_TYPE_UNKNOWN

Network type is unknown

Constant Value: 0 (0x00000000)

(不知道网络类型)

 

public static final int NETWORK_TYPE_GPRS

Current network is GPRS

Constant Value: 1 (0x00000001)

(2.5G)移动和联通

 

public static final int NETWORK_TYPE_EDGE

Current network is EDGE

Constant Value: 2 (0x00000002)

(2.75G)2.5G到3G的过渡    移动和联通

 

public static final int NETWORK_TYPE_UMTS

Current network is UMTS

Constant Value: 3 (0x00000003)

(3G)联通

 

-----------------Added in API level 4---------------------

public static final int NETWORK_TYPE_CDMA

Current network is CDMA: Either IS95A or IS95B

Constant Value: 4 (0x00000004)

(2G 电信)

 

public static final int NETWORK_TYPE_EVDO_0

Current network is EVDO revision 0

Constant Value: 5 (0x00000005)

( 3G )电信

 

public static final int NETWORK_TYPE_EVDO_A

Current network is EVDO revision A

Constant Value: 6 (0x00000006)

(3.5G) 属于3G过渡

 

public static final int NETWORK_TYPE_1xRTT

Current network is 1xRTT

Constant Value: 7 (0x00000007)

( 2G )

 

---------------------Added in API level 5--------------------

public static final int NETWORK_TYPE_HSDPA

Current network is HSDPA

Constant Value: 8 (0x00000008)

(3.5G )

 

public static final int NETWORK_TYPE_HSUPA

Current network is HSUPA

Constant Value: 9 (0x00000009)

( 3.5G )

 

public static final int NETWORK_TYPE_HSPA

Current network is HSPA

Constant Value: 10 (0x0000000a)

( 3G )联通

 

--------------------------Added in API level 8-------------------------

public static final int NETWORK_TYPE_IDEN

Current network is iDen

Constant Value: 11 (0x0000000b)

(2G )

 

--------------------------Added in API level 9-------------------------

public static final int NETWORK_TYPE_EVDO_B

Current network is EVDO revision B

Constant Value: 12 (0x0000000c)

3G-3.5G

 

--------------------------Added in API level 11------------------------

public static final int NETWORK_TYPE_LTE

Current network is LTE

Constant Value: 13 (0x0000000d)

(4G)

 

public static final int NETWORK_TYPE_EHRPD

Current network is eHRPD

Constant Value: 14 (0x0000000e)

3G(3G到4G的升级产物)

 

 

--------------------------Added in API level 13---------------------------

public static final int NETWORK_TYPE_HSPAP

Current network is HSPA+

Constant Value: 15 (0x0000000f)

( 3G )

 

《网络类型 - 运营商.doc》
将本文的Word文档下载,方便收藏和打印
推荐:
下载文档
热门推荐
相关推荐