Android 编译sdk版本为29时,NetworkInfo 过时了,去Android官网查到以下结果

Android网络状态获取类 在api 29中 NetworkInfo Deprecated_第1张图片

 

版本29以前的写法如下:

public static boolean networkConnected(Context context) {        if (context != null) {            ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo mWiFiNetworkInfo = mConnectivityManager.getActiveNetworkInfo();            if (mWiFiNetworkInfo != null) {                if (mWiFiNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) {//WIFI                    return true;                } else if (mWiFiNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {//移动数据                    return true;                }            }        }        return false;    }

如果使用编译版本29及以上的话请改成如下:

public static boolean networkConnected(Context context) {        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);        if (context != null) {            if(Build.VERSION.SDK_INT<23){                NetworkInfo mWiFiNetworkInfo = cm.getActiveNetworkInfo();                if (mWiFiNetworkInfo != null) {                    if (mWiFiNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) {//WIFI                        return true;                    } else if (mWiFiNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {//移动数据                        return true;                    }                }            }else{                Network network =cm.getActiveNetwork();                if(network!=null){                    NetworkCapabilities nc=cm.getNetworkCapabilities(network);                    if(nc!=null){                        if(nc.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)){//WIFI                            return true;                        }else if(nc.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)){//移动数据                            return true;                        }                    }                }            }        }        return false;    }

主要是做了版本判断,然后为什么是23呢, 因为getActiveNetwork 这个方法最低使用api是23,以上。

 

更多相关文章

  1. Android 数据绑定视图 dataBinding
  2. Android 中数据库查询方法 query() 中的 select
  3. Android 关于获取摄像头帧数据
  4. Android中使用Gson解析JSON数据
  5. 安卓9.0 http请求数据失败解决办法
  6. 待机后,android中activity的数据丢失问题解决
  7. 修改系统Android版本,版本号
  8. Android SDK版本更新
  9. Android 封装json数据

随机推荐

  1. Windows下Mysql启动报1067的解决方法
  2. MySQL分区字段列有必要再单独建索引吗?
  3. Ubuntu下MySQL安装及配置远程登录教程
  4. MySQL 清除表空间碎片的实例详解
  5. navicat不能创建函数解决方法分享
  6. 使用navicate连接阿里云服务器上的mysql
  7. mysql数据存储过程参数实例详解
  8. MySQL中or语句用法示例
  9. Mysql中explain作用详解
  10. 详解mysql中的冗余和重复索引