一,WIFI 网卡有哪些状态?

WIFI 总共有以下五个状态,实际就是一些整形常量:

1.   WIFI_STATE_DISABLED : WIFI 不能使用,其值是: 1 

2.   WIFI_STATE_DISABLING : WIFI 正在关闭中,由于 WIFI 关闭是需要这一个过程,这个状态就表示 WIFI 正在关闭的过程中,其值是: 0 

3.   WIFI_STATE_ENABLED : WIFI 可以使用,其值是: 3 

4.   WIFI_STATE_ENABLING : WIFI 正在开启中,其道理同 WIFI_STATE_DISABLING ,其值是: 2 

5.   WIFI_STATE_UNKNOWN :未知网卡状态,当手机或程序出现了一些错误引起 WIFI 不可用时会是这个状态,其值是: 4 

二,操作 WIFI 需要获取的权限

要获取操作 WIFI 的权限,就必须知道 WIFI 到底有哪些权限, WIFI 的主要操作权限有四个:

CHANGE_NETWORK_STATE :允许修改网络状态的权限。

CHANGE_WIFI_STATE :允许修改 WIFI 状态的权限。

ACCESS_NETWORK_STATE :允许访问网络状态的权限。

ACCESS_WIFI_STATE :允许访问 WIFI 状态的权限。

 

声明操作 WIFI 权限是在 AndroidManifest.xml 文件中进行声明!加入:

  •     <!--得到WIFI访问网络所需要的权限 -->  
  • <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission>
  • <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
  • <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
  • <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>

三、 改变 WIFI 的状态

对 WIFI 状态进行操作主要涉及到三个方面:

1.  通过   m_wifiManager=(WifiManager)this.getSystemService(Context.WIFI_SERVICE); 得到WifiManager 对象,这个对象是我们操作 WIFI 网卡的根本,无论是改变WIFI 的状态,还是获取 WIFI 的状态,都要通过这个对象。

2.  改变 WIFI 网卡状态,涉及到一个 WifiManager 的方法SetWifiEnabled ,通过这个方法的参数设置,可以实现打开或关闭 WIFI :true 表示打开, false 表示关闭。

3.   获取 WIFI 网卡的状态,涉及到一个 WifiManager 的方法 getWifiState 通过这个方法,就可以取得 WIFI 的当前状态,即第一点中所讲的 WIFI 五个状态中的一个。

注:

1、 有些地方使用m_wifiManager =(WifiManager)this.getSystemService(Service.WIFI_SERVICE ) ;或者(WifiManager)this.getSystemService(this. WIFI_SERVICE )来取得 WifiManager 对象,由于 Service 和Activity都是是 Context 的一个子类, Service和Activity 的 WIFI_SERVICE 实际是从 Context 那里继承下来的,所以写成 Context.WIFI_SERVICE 也是没有问题的。

附:也可以通过下面的方法来获取wifi状态

// 获取wifi是否打开
    public boolean isWifiActive()
    {
        // 获取连接管理器
        ConnectivityManager connMng = (ConnectivityManager) this
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connMng != null)
        {
            NetworkInfo[] netInfor = connMng.getAllNetworkInfo();
            for (NetworkInfo i : netInfor)
            {
                if (ConnectivityManager.TYPE_WIFI == i.getType()
                        && i.isConnected())
                {
                    return true;// wifi已经打开
                }
            }
        }
        return false;
    }

WIFI网络访问(一)的更多相关文章

  1. 【智能家居篇】wifi网络访问原理(下一个)——联想Association

    转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 认证完毕后,下一步就是关联(Association). 工作站与基站进行关联.以便获得网络的全然訪问权. 关联属于一 ...

  2. 360开启wifi无网络访问处理办法

    一.背景说明 台式机默认没有无线网卡的,想开个wifi,在电脑上插上了个usb无线网卡然后开启“360免费WiFi”.但显示“无网络访问”,连上之后确实也不能访问外部网站. 二.处理办法 依次打开“控 ...

  3. Android (cocos2dx 网络访问)访问权限设置

    Android开发应用程序时,如果应用程序需要访问网络权限,需要在 AndroidManifest.xml 中加入以下代码: 同样的如果用到其它的权限,也需要作出声明,部分权限列表如下: androi ...

  4. android 中获取网络状态、判断3G、2G、wifi网络、判断wifi是否打开、获取本机地址、获取本机串号IMEI整理

    代码如下:package com.android.xym; import java.io.IOException; import java.net.HttpURLConnection; import ...

  5. 如何使用Reaver破解Wi-Fi网络的WPA密码

    via: http://lifehacker.com/5873407/how-to-crack-a-wi+fi-networks-wpa-password-with-reaver 译者:Mr小眼儿 本 ...

  6. 在Wifi网络中嗅探明文密码(HTTP POST请求、POP等)

    全世界,现在大约50%的网站没有使用SSL加密,天朝尤其多. 我们都知道通过HTTP发送的数据都是明文,没有使用任何加密,即使是在数据敏感的登录页面. 本文的目的是:如果你在不熟悉的网络环境中,要注意 ...

  7. 【技术贴】大型发布会现场的WiFi网络应该如何搭建?

    WiFi网络的部署要远远比一般人想象的复杂,不是说放上几十个AP带宽就自动增加几十倍,恰恰相反,简单放几十个AP带宽会由于AP之间的竞争而 迅速使带宽下降为几乎不可用.实际上这个问题完全可以写一本书了 ...

  8. 主机WIFI网络环境下,Linux虚拟机网络设置

    在主机使用WIFI网络环境下,怎么样进行虚拟机静态ip设置和连接互联网呢,原理什么太麻烦,另类的网络共享而已: 1.其实简单将网络连接模式设置成NAT模式即可. 2.虚拟网络编辑器依旧是桥接模式,选择 ...

  9. 九、Android学习第八天——广播机制与WIFI网络操作(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 九.Android学习第八天——广播机制与WIFI网络操作 今天熟悉了An ...

随机推荐

  1. Android编译过程详解(三)

    前面两节讲解了自定义Android编译项和创建Product产品配置文件,除了编译和定义产品相关环境变量外,还需要定义Board相关环境变量. 1. build/core/config.mk 109 ...

  2. Github错误:Failed to publish this branch

    转自:http://jingpin.jikexueyuan.com/article/34632.html 今天弄github的时候,客户端一直出现error to publish this branc ...

  3. css学习之color: window和color: currentColor

    一.易被忽略的属性 color: currentColor color: window   看完之后感觉眼前一亮,有的我之前根本没有用过,甚至都不知道有color: currentColor这么个东西 ...

  4. dtree基础

    最近用到了dtree来建立树,纠结过好久后,终于有了些门道,下面的总结希望对咪咪们有些帮助: dtree用来建立静态树或者动态树都是很方便的,老外给提供了整个的JS,然后我们只是操心这个树中存放的元素 ...

  5. 数据结构c++语言描述——最大堆(MaxHeap)

    一.最大堆的插入 图9-3a 给出了一个具有5个元素的最大堆.由于堆是完全二叉树,当加入一个元素形成6元素堆时,其结构必如9-3b 所示.如果插入元素的值为1,则插入后该元素成为2的左孩子,相反,若新 ...

  6. CSS 设计彻底研究(一)(X)HTML与CSS核心基础

    第1章 (X)HTML与CSS核心基础 这一章重点介绍了4个方面的问题.先介绍了 HTML和XHTML的发展历程以及需要注意的问题,然后介绍了如何将CSS引入HTML,接着讲解了CSS的各种选择器,及 ...

  7. (原) c++ 杂

    Declaration of variables   C++ is a strongly-typed language, and requires every variable to be decla ...

  8. (原)mkl的cblas_sgemm和cblas_dgemm

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5553336.html 参考网址: mkl-11.3.2-developer-reference-c_0 ...

  9. 设计模式 之 Organizing the Catalog 组织目录

    Design patterns vary in their granularity and level of abstraction. Because thereare many design pat ...

  10. ssh整合web.xml过滤器和监听器的配置 .

    延迟加载过滤器 Hibernate 允许对关联对象.属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行.如果 Service 层返回一个启用了延迟 ...