Android 获取网络状态

1.检测网络是否可用

public boolean isNetWorkConnected() {

  ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
  NetworkInfo ni = cm.getActiveNetworkInfo();
  return ni != null && ni.isConnectedOrConnecting();
}

需要权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

2.获取网络连接方式

public static final int NETTYPE_WIFI = 0x01;
public static final int NETTYPE_CMWAP = 0x02;
public static final int NETTYPE_CMNET = 0x03;

/**
* 获取当前网络类型
*
* @return 0:没有网络 1:WIFI网络 2:WAP网络 3:NET网络
*/
public int getNetworkType() {

  int netType = 0;

  ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
  NetworkInfo ni = cm.getActiveNetworkInfo();
  if(ni != null) {

    int nType = ni.getType();
    if(nType == ConnectivityManager.TYPE_MOBILE) {

      String extraInfo = ni.getExtraInfo();
      if(!isEmpty(extraInfo)) {

        if (extraInfo.toLowerCase().equals("cmnet")) {

          netType = NETTYPE_CMNET;
        } else {

          netType = NETTYPE_CMWAP;
        }
      }
    } else if (nType == ConnectivityManager.TYPE_WIFI) {

      netType = NETTYPE_WIFI;
    }
  }

  return netType;
}

原文地址:https://www.cnblogs.com/xingkai/p/5090787.html