下面来看一段代码connManager获取系统连接的服务,在通过getNetworkInfo获取当前网络的信息,最后通过getState获取当前网络的状态,从而判断手机当前连接的网络是wifi还是数据。
public class NetworkUtils {
public final static int NONE = 0;
//无网络
public final static int WIFI = 1;
//Wi-Fi
public final static int MOBILE = 2;
//3G,GPRS
/** * 获取当前网络状态
* @param context
* @return
*/
public static int getNetworkState(Context context) {
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//手机网络判断
State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
if(state == State.CONNECTED||state == State.CONNECTING) {
return MOBILE;
}
//Wifi网络判断
state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if(state == State.CONNECTED||state == State.CONNECTING) {
return WIFI;
}
return NONE;
}
参考链接:https://blog.csdn.net/shichaosong/article/details/9463893