android开发: 怎么获取当前网络类型是wifi网络还是4G网还是蓝牙共享的网络有示例代码吗
获取当前网络类型可以借助Android系统提供的ConnectivityManager类,使用getActiveNetworkInfo()方法获取当前网络信息,然后判断网络类型即可。
示例代码如下:
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {
if (activeNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
// WIFI网络
} else if (activeNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
// 移动网络,可以通过TelephonyManager获取具体的网络类型
} else if (activeNetworkInfo.getType() == ConnectivityManager.TYPE_BLUETOOTH) {
// 蓝牙共享网络
}
}
其中,如果当前网络类型为移动网络,可以通过TelephonyManager的getNetworkType()方法获取具体的网络类型,例如:
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
int networkType = telephonyManager.getNetworkType();
switch (networkType) {
case TelephonyManager.NETWORK_TYPE_GPRS:
case TelephonyManager.NETWORK_TYPE_EDGE:
case TelephonyManager.NETWORK_TYPE_CDMA:
case TelephonyManager.NETWORK_TYPE_1xRTT:
case TelephonyManager.NETWORK_TYPE_IDEN:
// 2G网络
break;
case TelephonyManager.NETWORK_TYPE_UMTS:
case TelephonyManager.NETWORK_TYPE_EVDO_0:
case TelephonyManager.NETWORK_TYPE_EVDO_A:
case TelephonyManager.NETWORK_TYPE_HSDPA:
case TelephonyManager.NETWORK_TYPE_HSUPA:
case TelephonyManager.NETWORK_TYPE_HSPA:
case TelephonyManager.NETWORK_TYPE_EVDO_B:
case TelephonyManager.NETWORK_TYPE_EHRPD:
case TelephonyManager.NETWORK_TYPE_HSPAP:
// 3G网络
break;
case TelephonyManager.NETWORK_TYPE_LTE:
// 4G网络
break;
default:
// 其他网络
break;
}
``
原文地址: http://www.cveoy.top/t/topic/hvP8 著作权归作者所有。请勿转载和采集!