网络状态的判断

网络状态分为以下几种

这里写图片描述

(可以将网放大查看图片)

判断网络状态代码

首先呢要创建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"/>

监听网络状态变化的话可以发送一个系统广播

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值