检查设备是否支持 LTE 数据连接

问题描述

我正在自学 Android 开发,并且想知道我的设备是否具有可以支持 LTE 网络的硬件。

我正在尝试下面的方法,但我认为它给了我错误的数据

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
   NetworkInfo[] info = cm.getAllNetworkInfo();
   for(int i=0; i <info.length; i++){
       Log.i("netinfo"+i,info[i].getType()+"");
       Log.i("netinfo"+i,info[i].getTypeName());
       Log.i("netinfo"+i,info[i].getSubtype()+"");
       Log.i("netinfo"+i,info[i].getSubtypeName());

简而言之,我只想知道我的设备是支持 LTE 数据网络还是仅支持 3g 或 4g 网络。

提前致谢

解决方法

我愿意:

int TelephonyManager.getDataNetworkType()

将值与(定义的)常量进行比较:

NETWORK_TYPE_UNKNOWN,NETWORK_TYPE_GPRS,NETWORK_TYPE_EDGE,NETWORK_TYPE_UMTS,NETWORK_TYPE_CDMA,NETWORK_TYPE_EVDO_0,NETWORK_TYPE_EVDO_A,NETWORK_TYPE_1xRTT,NETWORK_TYPE_HSDPA,NETWORK_TYPE_HSUPA,NETWORK_TYPE_HSPA,NETWORK_TYPE_IDEN,NETWORK_TYPE_EVDO_B,NETWORK_TYPE_LTE,NETWORK_TYPE_EHRPD,NETWORK_TYPE_HSPAP,NETWORK_TYPE_GSM,NETWORK_TYPE_TD_SCDMA,NETWORK_TYPE_IWLAN,or NETWORK_TYPE_NR  

NETWORK_TYPE_GSM is 2G

NETWORK_TYPE_GPRS,NETWORK_TYPE_EDGE is 2,5G

NETWORK_TYPE_UMTS is 3G

NETWORK_TYPE_HSDPA,NETWORK_TYPE_HSPAP are 3,5G

NETWORK_TYPE_LTE is 4G

NETWORK_TYPE_NR is 5G

这是 API 参考