问题描述
我正在自学 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 参考