检查设备是否支持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_HSUPA, NETWORK_TYPE_HSPA, NETWORK_TYPE_HSPAP are 3,5G
NETWORK_TYPE_LTE is 4G
NETWORK_TYPE_NR is 5G

这是API参考

最新更新