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

 

版本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. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. Android(安卓)中数据库查询方法 query() 中的 select
  4. Android(安卓)数据绑定视图 dataBinding
  5. Android(安卓)关于获取摄像头帧数据
  6. ionic android升级错误 exposed beyond app through Intent.getD
  7. [置顶] android orm映射框架(类似hibernate)基本使用
  8. Android中使用Gson解析JSON数据
  9. Android(安卓)设置没有 actionBar的 样式

随机推荐

  1. (二)Android系统信息
  2. android Linearlayout中有关gravity与lay
  3. 笔记 RelativeLayout:相对布局管理器:
  4. Android平台开发-Android(安卓)keypad ma
  5. Android单元测试之Local unit tests(下)
  6. Android内存管理、监测剖析
  7. android开发每日汇总【2011-12-6】
  8. android:visibility属性
  9. running Android(安卓)Studio on Windows
  10. EditText 的常用属性与解释