Android 网络访问
2014-05-07 10:51
260 查看
Android 类 : NetworkInfo
描述了当前网络 Mobile和Wifi的状态。
有2个内部类 NetworkInfo.DetailedState(精确的网络状态)和 NetworInfo.State(粗略的网路状态)
NetworkInfo.DetailedState 枚举值有:
IDLE : 准备好开始数据连接设置
SCANNING :寻找一个可用的访问点。
CONNECTING :当前设置数据连接
AUTHENTICATING :网络链路建立,执行身份验证
OBTAINING_IPADDR :等待响应从DHCP服务器为了分配IP地址信息。
CONNECTED :IP流量应该可用
SUSPENDED :IP流量悬浮
DISCONNECTING : 当前拆除数据连接
DISCONNECTED : IP流量。
FAILED :尝试连接失败。
BLOCKED :访问这个网络阻塞。
NetworInfo.State 枚举有:
CONNECTING
CONNECTED
SUSPENDED
DISCONNECTING
DISCONNECTED,
UNKNOWN
isConnectedOrConnecting():显示网络连接是否存在或过程被建立。这是适合应用程序的需要做任何相关的网络读写数据。
isConnected():显示网络连接是否存在,可以建立连接和传递数据。
isAvailable():显示网络连接是否可能。网络不可用当一个持久或semi-persistent条件阻止了可能性网络的连接。例子包括设备的这种类型的网络的覆盖范围。设备在家庭网络(即以外的一个网络。、漫游)数据漫游已禁用。设备的无线电是关闭的。,因为飞机模式启用。
isFailover():表明当前是否试图连接到网络ConnectivityManager试图引起故障转移网络断开后另一个网络。
isRoaming():
显示当前设备是否在这个网络漫游。{ @code真正}时,表明使用该网络的数据*可能招致额外费用。
ConnectivityManager connectMgr = (ConnectivityManager) this
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectMgr.getActiveNetworkInfo();
一、判断网络是否是wifi,在判断之前一定要进行的非空判断,如果没有任何网络
连接info ==null
info.getType() == ConnectivityManager.TYPE_WIFI
二、判断是否是手机网络
info !=null && info.getType() == ConnectivityManager.TYPE_MOBILE
手机网络进行详细区分:
info.getSubtype() 这里使用 getSubtype(),不是 getType(),getType()返回的
是0,或者1,是区分是手机网络还是wifi
info.getSubtype()取值列表如下:
* NETWORK_TYPE_CDMA 网络类型为CDMA
* NETWORK_TYPE_EDGE 网络类型为EDGE
* NETWORK_TYPE_EVDO_0 网络类型为EVDO0
* NETWORK_TYPE_EVDO_A 网络类型为EVDOA
* NETWORK_TYPE_GPRS 网络类型为GPRS
* NETWORK_TYPE_HSDPA 网络类型为HSDPA
* NETWORK_TYPE_HSPA 网络类型为HSPA
* NETWORK_TYPE_HSUPA 网络类型为HSUPA
* NETWORK_TYPE_UMTS 网络类型为UMTS
联通的3G为UMTS或HSDPA,移动和联通的2G为GPRS或EDGE,电信的2G为CDMA,电信的3G为EVDO
getExtraInfo():报告额外的网络状态信息,如果有的话提供的较低的网络层。如果一个是可用的。
描述了当前网络 Mobile和Wifi的状态。
有2个内部类 NetworkInfo.DetailedState(精确的网络状态)和 NetworInfo.State(粗略的网路状态)
NetworkInfo.DetailedState 枚举值有:
IDLE : 准备好开始数据连接设置
SCANNING :寻找一个可用的访问点。
CONNECTING :当前设置数据连接
AUTHENTICATING :网络链路建立,执行身份验证
OBTAINING_IPADDR :等待响应从DHCP服务器为了分配IP地址信息。
CONNECTED :IP流量应该可用
SUSPENDED :IP流量悬浮
DISCONNECTING : 当前拆除数据连接
DISCONNECTED : IP流量。
FAILED :尝试连接失败。
BLOCKED :访问这个网络阻塞。
NetworInfo.State 枚举有:
CONNECTING
CONNECTED
SUSPENDED
DISCONNECTING
DISCONNECTED,
UNKNOWN
isConnectedOrConnecting():显示网络连接是否存在或过程被建立。这是适合应用程序的需要做任何相关的网络读写数据。
isConnected():显示网络连接是否存在,可以建立连接和传递数据。
isAvailable():显示网络连接是否可能。网络不可用当一个持久或semi-persistent条件阻止了可能性网络的连接。例子包括设备的这种类型的网络的覆盖范围。设备在家庭网络(即以外的一个网络。、漫游)数据漫游已禁用。设备的无线电是关闭的。,因为飞机模式启用。
isFailover():表明当前是否试图连接到网络ConnectivityManager试图引起故障转移网络断开后另一个网络。
isRoaming():
显示当前设备是否在这个网络漫游。{ @code真正}时,表明使用该网络的数据*可能招致额外费用。
ConnectivityManager connectMgr = (ConnectivityManager) this
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectMgr.getActiveNetworkInfo();
一、判断网络是否是wifi,在判断之前一定要进行的非空判断,如果没有任何网络
连接info ==null
info.getType() == ConnectivityManager.TYPE_WIFI
二、判断是否是手机网络
info !=null && info.getType() == ConnectivityManager.TYPE_MOBILE
手机网络进行详细区分:
info.getSubtype() 这里使用 getSubtype(),不是 getType(),getType()返回的
是0,或者1,是区分是手机网络还是wifi
info.getSubtype()取值列表如下:
* NETWORK_TYPE_CDMA 网络类型为CDMA
* NETWORK_TYPE_EDGE 网络类型为EDGE
* NETWORK_TYPE_EVDO_0 网络类型为EVDO0
* NETWORK_TYPE_EVDO_A 网络类型为EVDOA
* NETWORK_TYPE_GPRS 网络类型为GPRS
* NETWORK_TYPE_HSDPA 网络类型为HSDPA
* NETWORK_TYPE_HSPA 网络类型为HSPA
* NETWORK_TYPE_HSUPA 网络类型为HSUPA
* NETWORK_TYPE_UMTS 网络类型为UMTS
联通的3G为UMTS或HSDPA,移动和联通的2G为GPRS或EDGE,电信的2G为CDMA,电信的3G为EVDO
getExtraInfo():报告额外的网络状态信息,如果有的话提供的较低的网络层。如果一个是可用的。
相关文章推荐
- 深度学习资料整理(深度神经网络理解)
- WAP和GPRS的区别
- Android MediaPlayer与Http Proxy结合之基础篇
- HTTP请求工具类(Java)
- Centos网络配置(手动设置和自动获取)IP的2种方法
- 读书笔记:请求网络的图片
- 转:TCP/IP协议栈的基本工作原理
- TCP/IP协议——TCP/IP协议栈及框架
- IIS6.0和IIS7.0中配置站点为Https形式
- HTTP状态码列表
- ARPSpoofing教程(二) - 获取网络设备中的详细地址信息
- Android端如何获取手机当前的网络状态,比如wifi还是3G, 还是2G, 电信还是联通,还是移动
- git的Http错误411
- 动态大系统方法导论(三)-动态系统的输入输出可达性及结构矩阵的一般秩
- 【网络基础】数据链路层实现的三大功能
- 网络推广论坛营销的威力!
- 网络高清视频监控传输:如何减少带宽消耗?
- vSphere 网络架构
- 网络时间协议(NTP)
- 【网络基础】OSI TCP/IP体系结构