我知道如何获取网络类型。但是我需要确定每个版本的相关标准,并按GSM,WCDMA和LTE分组(不会使用其他标准)。我可以这样过滤:
switch (networkType) {
case TelephonyManager.NETWORK_TYPE_GPRS:
tech = "GPRS";
standard = "GSM";
break;
case TelephonyManager.NETWORK_TYPE_HSDPA:
tech = "HSDPA";
standard = "WCDMA";
break;
}
我可以使用Android API中的一些信息以一种优雅的方式来检索这些信息吗?
这将帮助我处理有关移动网络的一些信息,这些信息在WCDMA,LTE和GSM之间以不同的方式处理。
更新:这不完全是我要的,但是距离很近。如何确定网络类型是2G,3G还是4G
使用NetworkInfo。
例如,这是一种为您提供设备是否具有网络的方法。
public Boolean hasDeviceConnectionToInternet(Context context) {
ConnectivityManager conMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo i = conMgr.getActiveNetworkInfo();
if (i == null)
return false;
if (!i.isConnected())
return false;
if (!i.isAvailable())
return false;
return true;
}
对于您的情况,您可以要求i.getType()
获取连接类型,或i.getTypeName()
提供易于理解的描述。
您可以在此处查看API:http : //developer.android.com/reference/android/net/NetworkInfo.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句