方案一:
在代码中,主要使用了两个类:ConnectivityManager和NetworkInfo类。这里只判断了两种大类的网络类型:wIfi(wifi网络)和mobile(数据流量)。
private boolean isConnectInent(Context context) {
ConnectivityManager conmanager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = conmanager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (networkInfo.isConnected()) {
return true;
}
networkInfo = conmanager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (networkInfo.isConnected()) {
return true;
}
return false;
}
方案二:
使用广播监听网络状态改变,当网络状态发生变化的时候,再去获取网络的信息。在activity销毁的时候,记得 unregisterReceiver(receiver);否则会报错。
注册广播:
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
receiver = new NetWorkReceiver();
this.registerReceiver(receiver, filter);
广播类:
public class NetWorkReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager conmanager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = conmanager.getActiveNetworkInfo();
if(networkInfo!=null){
message.setText(networkInfo.getTypeName()+" ");
}else{
message.setText("没有网络!");
}
}
}