代码如下:
public class NetworkUtil {
public static final String wifi = "wifi";
public static final String moblie2g = "2G";
public static final String moblie3g = "3G";
public static final String moblie4g = "4G";
/**
* @return true 表示网络可用
*/
public static boolean isNetworkAvailable() {
ConnectivityManager connectivity = (ConnectivityManager)MyApplication.myContext.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (info != null && info.isConnected()){
// 当前网络是连接的
if (info.getState() == NetworkInfo.State.CONNECTED){
// 当前所连接的网络可用
return true;
}
}
}
return false;
}
/**
* 判断网络类型 0是wifi 1 是手机 -1 未联网
* @param context
* @return
*/
public static int isWifi(Context context){
int type = -1;
ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(connectivity != null){
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (info != null && info.isConnected()){
if (info.getType() == ConnectivityManager.TYPE_WIFI){
type = 0;
}else if(info.getType() == ConnectivityManager.TYPE_MOBILE){
type = 1;
}
}
}
return type;
}
/**
* 判断当前网络类型
* @param context
* @return
*/
public static String getNetworkType(Context context){
String strNetworkType = null;
ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(connectivity != null){
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (info != null && info.isConnected()){
if (info.getType() == ConnectivityManager.TYPE_WIFI){
strNetworkType = wifi;
}else if(info.getType() == ConnectivityManager.TYPE_MOBILE){
String _strSubTypeName = info.getSubtypeName();
int networkType = info.getSubtype();
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: //api<8 : replace by 11
strNetworkType = moblie2g;
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: //api<9 : replace by 14
case TelephonyManager.NETWORK_TYPE_EHRPD: //api<11 : replace by 12
case TelephonyManager.NETWORK_TYPE_HSPAP: //api<13 : replace by 15
strNetworkType = moblie3g;
break;
case TelephonyManager.NETWORK_TYPE_LTE: //api<11 : replace by 13
strNetworkType = moblie4g;
break;
default:
// http://baike.baidu.com/item/TD-SCDMA 中国移动 联通 电信 三种3G制式
if (_strSubTypeName.equalsIgnoreCase("TD-SCDMA") || _strSubTypeName.equalsIgnoreCase("WCDMA") || _strSubTypeName.equalsIgnoreCase("CDMA2000")){
strNetworkType = moblie3g;
}else{
strNetworkType = _strSubTypeName;
}
break;
}
}
}
}
return strNetworkType;
}
}
如果对您有用的话赞一下呗!谢谢谢谢~