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;
}
原文地址: https://www.cveoy.top/t/topic/oYHm 著作权归作者所有。请勿转载和采集!