Android判断当前网络的类型
2016-06-30 18:41
465 查看
判断当前网络的状态
不管是通过广播进行判断还是怎么判断,首先应该在Android工程的清单文件AndroidManifest.xml中添加权限[html] view plain copy
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
其次如果用广播方式进行判断的话还得在清单文件中注册一个广播,就以我这个工程为例:
<receiver android:name="com.example.test.NetReceiver" > <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver>
判断网络类型的代码呢,都差不多一样,下面是关键性代码:
if (info == null) { type = "null"; } else if (info.getType() == ConnectivityManager.TYPE_WIFI) { type = "wifi"; } else if (info.getType() == ConnectivityManager.TYPE_MOBILE) { int subType = info.getSubtype(); if (subType == TelephonyManager.NETWORK_TYPE_CDMA || subType == TelephonyManager.NETWORK_TYPE_GPRS || subType == TelephonyManager.NETWORK_TYPE_EDGE) { type = "2g"; } else if (subType == TelephonyManager.NETWORK_TYPE_UMTS || subType == TelephonyManager.NETWORK_TYPE_HSDPA || subType == TelephonyManager.NETWORK_TYPE_EVDO_A || subType == TelephonyManager.NETWORK_TYPE_EVDO_0 || subType == TelephonyManager.NETWORK_TYPE_EVDO_B) { type = "3g"; } else if (subType == TelephonyManager.NETWORK_TYPE_LTE) {// LTE是3g到4g的过渡,是3.9G的全球标准 type = "4g"; }
获取到字段“type”的值你就可以根据你自己的业务来进行网络类型的判断了。
相关文章推荐
- 【那些年遇到过的面试题】netstat/tcpdump/traceroute/ss/probe
- Python 安装 httplib2
- http://www.cnblogs.com/Matrix54/archive/2012/05/03/2481260.html
- 常用的 HTTPContent-type 大全
- 详解网络摄像机中的IR-CUT
- HTTP常见错误返回代码
- JAX-RS入门 八: HTTP响应
- HttpClient与HttpURLConnection的请求方式
- HttpClient在HTTP协议接口测试中的使用
- http协议(二)请求和响应报文的构成
- iOS开发网络篇—实现一个视频播放客户端小应用
- HTTP协议全览
- HttpServletResponse对象实现文件下载
- HttpServletResponse对象实现文件下载
- XSocket-跨平台网络库
- 网络 http服务器-v2-epoll版本
- Android Okhttp3+Retrofit2网络加载效率优化
- 深入浅出 - Android系统移植与平台开发(三)- 配置Vmware网络
- RBF神经网络与BP神经网络的比较
- 网络、互联网、因特网的基本概念与组成