学习笔记一 Android 网络是否连接

来源:互联网 发布:人工智能应用公共交通 编辑:程序博客网 时间:2024/06/07 04:59

整理一下,以备后用。如有错误,欢迎指正。

1.networkinfo.isConnected

ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);conMan.getNetworkInfo(TYPE_ETHERNET).isConnected()
返回一个Boolean 类型的值

2.networkinfo.isAvailable()

public static boolean isNetworkAvailabe(final Context context) {        boolean netStatus = false;        ConnectivityManager connectManager = (ConnectivityManager) context                .getSystemService(Context.CONNECTIVITY_SERVICE);        connectManager.getActiveNetworkInfo();        if (connectManager.getActiveNetworkInfo() != null) {            netStatus = connectManager.getActiveNetworkInfo().isAvailable();        }        return netStatus;    }
3.networkInfo.getState()

 public static boolean isCurrentNetConnected(Context context) {        ConnectivityManager conMan = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);        State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();        State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();        if (mobile == State.CONNECTED || wifi == State.CONNECTED) {            return true;        } else {            return false;        }    }
源码分析:

networkinfo.isConnected

  public boolean isConnected() {        synchronized (this) {            return mState == State.CONNECTED;        }    }
networkInfo.getState()

public State getState() {        synchronized (this) {            return mState;        }    }
由源码,可以看出,这两个的值其实是一个。同时可以看出State(枚举  源码如下)的值中只有CONNECTED代表连接。

<span style="font-size:32px;"> public enum State {        CONNECTING, CONNECTED, SUSPENDED, DISCONNECTING, DISCONNECTED, UNKNOWN    }</span>



                                             
0 0
原创粉丝点击