网络连接判断networkutils

public class NetWorkUtils {
Context mcontext;
public NetWorkUtils(Context mcontext){
this.mcontext = mcontext;
}

public int netWorkType(){
ConnectivityManager mConnectivity = (ConnectivityManager)mcontext.getSystemService(Context.CONNECTIVITY_SERVICE);
TelephonyManager mTelephony = (TelephonyManager)mcontext.getSystemService(Context.TELEPHONY_SERVICE);
//检查网络连接
NetworkInfo info = mConnectivity.getActiveNetworkInfo();

if (info == null || !mConnectivity.getBackgroundDataSetting()) {
Log.i("TAG","网络未连接.....");
return 3;
}

int netType = info.getType();
int netSubtype = info.getSubtype();
Log.i("TAG",netType+",,"+netSubtype+",,"+mTelephony.isNetworkRoaming());
if (netType == ConnectivityManager.TYPE_WIFI) { //WIFI
Log.i("TAG","wifi连接.....");
return 1;
} else if (netType == ConnectivityManager.TYPE_MOBILE && netSubtype == TelephonyManager.NETWORK_TYPE_UMTS && !mTelephony.isNetworkRoaming()) { //MOBILE
Log.i("TAG","移动数据连接.....");
return 2;
}
return 3;
}
}

另一个类需要用到它时,如下写的:

NetWorkUtils netUtils = new NetWorkUtils(getApplicationContext());
int i = netUtils.netWorkType();//获得当前网络状态类型
if(i == 1){
//请求数据,并保存
Log.i("TAG", "开始离线下载......");


}else if(i == 2){
Log.i("TAG", "提示是移动数据,是否继续下载......");
}else{
Log.i("TAG", "没网,不需要下载......");
}

原文地址:https://www.cnblogs.com/zhengyanyan/p/5338654.html