public class NetWorkUtils {
/**
* 网络连接类型的枚举类
*/
public enum NetworkType {
NOT_CONNECTED, TYPE_WIFI, TYPE_WAP, TYPE_NET
}
/**
* 获取网络连接类型
*/
public static NetworkType getNetworkType(Context context) {
NetworkType type = NetworkType.NOT_CONNECTED;
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (manager != null) {
NetworkInfo info = manager.getActiveNetworkInfo();
if (info.getType() == ConnectivityManager.TYPE_WIFI) {
type = NetworkType.TYPE_WIFI;
} else if (info.getType() == ConnectivityManager.TYPE_MOBILE) {
String extra = info.getExtraInfo();
if (!TextUtils.isEmpty(extra)) {
if (extra.toLowerCase(Locale.CHINA).equals("cmnet")) {
type = NetworkType.TYPE_NET;
} else {
type = NetworkType.TYPE_WAP;
}
}
}
}
return type;
}
/**
* 判断是否联网
*/
public static boolean isNetworkConnected(Context context) {
boolean connected = false;
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (manager != null) {
NetworkInfo info = manager.getActiveNetworkInfo();
if (info != null) {
connected = info.isConnectedOrConnecting();
}
}
return connected;
}
public static final int NETWORN_NONE = 0;
public static final int NETWORN_WIFI = 1;
public static final int NETWORN_MOBILE = 2;
public static int getNetworkState(Context context) {
ConnectivityManager connManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
// Wifi
NetworkInfo.State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
.getState();
if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) {
return NETWORN_WIFI;
}
// 3G
state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
.getState();
if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) {
return NETWORN_MOBILE;
}
return NETWORN_NONE;
}
//提示view的隐藏和显示
public static void remindViewState(Context context,ViewGroup view){
if(isNetworkConnected(context)){
view.setVisibility(View.GONE);
}else{
view.setVisibility(View.VISIBLE);
}
}
}