我如何识别Android手机使用的数据连接是2.75G,3G还是4G?

时间:2014-10-18 10:31:39

标签: java android 3g 4g

如何以编程方式识别Android手机使用的数据连接是2.75G,3G还是4G?

我要求这样做,用于从使用不同数据连接的多个用户收集数据服务的数据。

2 个答案:

答案 0 :(得分:1)

使用TelephonyManager.GetNetworkType()。网络类型符合您的要求,如下所示:

基于GSM的系统:

NETWORK_TYPE_GPRS当前网络是GPRS - 2G
NETWORK_TYPE_EDGE当前网络是EDGE - 有时称为2.75G
NETWORK_TYPE_UMTS当前网络是UMTS - 3G
NETWORK_TYPE_HSDPA当前网络是HSDPA - 3G
NETWORK_TYPE_HSUPA当前网络是HSUPA - 3G
NETWORK_TYPE_HSPA当前网络是HSPA - 3G
NETWORK_TYPE_HSPAP当前网络是HSPA + - 3G,但有时也称为3.5G
NETWORK_TYPE_LTE当前网络是LTE-4G

NETWORK_TYPE_IDEN当前网络是iDen - a Motorola system built on GSM - 对应2G

基于CDMA的系统:

NETWORK_TYPE_CDMA当前网络是CDMA:IS95A或IS95B - 2G
NETWORK_TYPE_1xRTT当前网络是1xRTT - 有时称为2.5G NETWORK_TYPE_EHRPD当前网络是eHRPD - 我发现eHRPD的最佳解释是here。基本上,它是EVDO的演进,通过LTE核心路由,因此EVDO可以无缝切换到LTE。 LTE是高通公司针对CDMA手机的首选4G系统(参见“UMB”下的here,)。 eHRPD是3G NETWORK_TYPE_EVDO_0当前网络是EVDO版本0 - 3G
NETWORK_TYPE_EVDO_A当前网络是EVDO修订版A - 3G
NETWORK_TYPE_EVDO_B当前网络是EVDO版本B - 3G

移动网络标准的比较,包括一些关于最高速度的数据,将2G / 3G / 4G估算置于上下文中,Wikipedia.查看HSPA +和LTE的速度。

答案 1 :(得分:0)

您可以在TelephonyManager示例代码的帮助下完成此操作。

查看此答案How to determine if network type is 2G, 3G or 4G