我正在开发一个Android应用程序,我正在检查2G,3G和4G的移动数据网络类型。我正在使用以下代码。
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
int netType = info.getType();
int netSubType = info.getSubtype();
我正在使用下面的代码检查2G连接。
if (netType == ConnectivityManager.TYPE_MOBILE && netSubType == TelephonyManager.NETWORK_TYPE_EDGE)
{
Log.e("2G enabled","2G enabled");
}
使用以下代码检查3G连接。
else if (netType == ConnectivityManager.TYPE_MOBILE && netSubType == TelephonyManager.NETWORK_TYPE_HSPA)
{
Log.e("3G enabled","3G enabled");
}
以上3G代码无效。我也试过使用下面的代码。
TelephonyManager.NETWORK_TYPE_HSUPA
TelephonyManager.NETWORK_TYPE_HSPA
TelephonyManager.NETWORK_TYPE_HSDPA
仍无法检测到3G可用性。没有到达我错的地方!请帮忙!谢谢!
答案 0 :(得分:1)
尝试以下内容:
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
if ((tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_HSDPA)) {
Log.d("3G enabled", "3G enabled");
} else if ((tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_HSPAP)) {
Log.d("4G enabled", "4G enabled");
}else if ((tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_EDGE)) {
Log.e("2G enabled","2G enabled");
}