zoukankan      html  css  js  c++  java
  • Android 网络访问

    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():报告额外的网络状态信息,如果有的话提供的较低的网络层。如果一个是可用的。
  • 相关阅读:
    多线程(10) — Future模式
    Java的设计模式(7)— 生产者-消费者模式
    多线程(9) — 无锁
    多线程(8) — ThreadLocal
    Java的设计模式(6)— 模板模式
    多线程(7)— JDK对锁优化的努力
    多线程(6) — 提高锁性能的一些看法
    复位电路 解析
    C语言数据类型
    MSP下载方式
  • 原文地址:https://www.cnblogs.com/houxin/p/3713266.html
Copyright © 2011-2022 走看看