Android(安卓)下网络状态监听
16lz
2021-01-25
最近在做网络监听的时候发现原来用的 NetworkInfo 中好多方法已经过期,so 看了下SDK及文档现将最新方法记录下。
//获取网络连接管理ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);//获取正在使用的网络信息NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();if(networkInfo != null && networkInfo.isConnected()){ //有网 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { //sdk大于21 NetworkCapabilities capabilities =connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork()); if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) { //蜂窝网络 Log.e("test","蜂窝网络>>>>>>>>"); return; } if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) { //wifi Log.e("test","wifi>>>>>>>>"); return; } if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_BLUETOOTH)) { //蓝牙 Log.e("test","蓝牙>>>>>>>>"); return; } if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) { //以太网 Log.e("test","以太网>>>>>>>>"); return; } if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN)) { //VPN Log.e("test","VPN>>>>>>>>"); return; } } else { //sdk小于21 switch (networkInfo.getType()) { case ConnectivityManager.TYPE_MOBILE: break; case ConnectivityManager.TYPE_WIFI: break; case ConnectivityManager.TYPE_ETHERNET: break; case ConnectivityManager.TYPE_VPN: break; case ConnectivityManager.TYPE_BLUETOOTH: break; default: break; } }} else { //无网}
更多相关文章
- Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影
- Android开发入门之网络通信(网络图片查看器)
- android的MVC模式网络请求demo
- Android(安卓)4.2.2 开机默认开启USB调试
- Android(安卓)以太网(有线网络)开关和状态的判断
- Activity学习(一):生命周期
- Android|Blackberry手机用蓝牙防丢器钥匙扣Cobra Tag
- android 2.3 wifi (一)
- Android(安卓)- Volley的ImageLoader下载图片