如何通过编程识别安卓手机使用的数据连接是2.75G、3G还是4G?
我要求这样做,以便使用不同的数据连接从多个用户收集数据以提供数据服务。
使用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——一个建立在GSM上的摩托罗拉系统——对应于2G
基于CDMA的系统:
NETWORK_TYPE_CDMA当前网络为CDMA:IS95A或IS95B-2G
NETWORK_TYPE_1xRTT当前网络为1xRTT-有时称为2.5G。
NETWORK_TYPE_EHRPD当前的网络是EHRPD——我在这里找到了对EHRPD最好的解释。基本上,这是EVDO的一种进化,通过LTE核心路由,因此EVDO可以无缝切换到LTE。LTE是高通公司为CDMA手机选择的4G系统(请参阅此处"UMB"下的内容)。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的估计纳入了上下文中。查看HSPA+和LTE的速度。
您可以在TelephonyManager示例代码的帮助下完成此操作。
查看此答案如何确定网络类型是2G、3G还是4G