网络状态分为以下几种
(可以将网放大查看图片)
判断网络状态代码
首先呢要创建ConnectivityManager 对象
ConnectivityManager mgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
判断是否有网络
NetworkInfo networkInfo = mgr.getActiveNetworkInfo();
如果是有网的状态返回这个对象,如果是没有网则返回null
如果可以上网,判断连接的什么网
由上可知网络状态无非就 WIFI 和移动网络
这里添加一个变量 int state 用来保存当前的链接状态
以及首先判断WIFI是否可用,WIFI可用了干嘛还要用移动呢~
//判断是否连接上网路,0没有网络,1.无线2.移动
int state = 0;
//判断WIFI是否可用
boolean hasWIFI = false;
if (networkInfo != null) {
//获取网络类型信息(移动或者无线)
int type = networkInfo.getType();
if (type == ConnectivityManager.TYPE_WIFI) {
//判断有没有链接成功(枚举类型的一个状态)
NetworkInfo.State stateInfo = networkInfo.getState();
//链接成功
if (stateInfo == NetworkInfo.State.CONNECTED) {
state = 1;
hasUse = true;
}
}
if (!hasUse&&type == ConnectivityManager.TYPE_MOBILE) {
NetworkInfo.State stateInfo = networkInfo.getState();
if (stateInfo == NetworkInfo.State.CONNECTED) {
//移动可用
state = 2;
}
最后就可以根据state变量值打印吐司
千万千万别忘了加权限
<!--使用网络的权限-->
<uses-permission android:name="android.permission.INTERNET"/>
<!--读取网络状态的权限-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
监听网络状态变化的话可以发送一个系统广播