美文网首页
网络判断方法过时的解决办法

网络判断方法过时的解决办法

作者: 小楠总 | 来源:发表于2017-07-17 17:25 被阅读351次

今天在判断网络是否连接的时候,发现方法过时了,我们应该使用新的API去获取网络状态。旧的API可能会出现一些网络状态判断错误的问题,完整代码如下:

public static boolean isNetworkAvailable(Context context) {
    if (context == null) {
        return false;
    }
    ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

    //新版本调用方法获取网络状态
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        Network[] networks = connectivity.getAllNetworks();
        NetworkInfo networkInfo;
        for (Network mNetwork : networks) {
            networkInfo = connectivity.getNetworkInfo(mNetwork);
            if (networkInfo.getState().equals(NetworkInfo.State.CONNECTED)) {
                return true;
            }
        }
    } else {
        //否则调用旧版本方法
        if (connectivity != null) {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null) {
                for (NetworkInfo anInfo : info) {
                    if (anInfo.getState() == NetworkInfo.State.CONNECTED) {
                        Log.d("Network", "NETWORKNAME: " + anInfo.getTypeName());
                        return true;
                    }
                }
            }
        }
    }
    return false;
}

如果觉得我的文字对你有所帮助的话,欢迎关注我的公众号:

公众号:Android开发进阶

我的群欢迎大家进来探讨各种技术与非技术的话题,有兴趣的朋友们加我私人微信huannan88,我拉你进群交(♂)流(♀)

相关文章

网友评论

      本文标题:网络判断方法过时的解决办法

      本文链接:https://www.haomeiwen.com/subject/tmlqkxtx.html