WIFI网络访问(一)
一,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网络访问(一)的更多相关文章
- 【智能家居篇】wifi网络访问原理(下一个)——联想Association
转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 认证完毕后,下一步就是关联(Association). 工作站与基站进行关联.以便获得网络的全然訪问权. 关联属于一 ...
- 360开启wifi无网络访问处理办法
一.背景说明 台式机默认没有无线网卡的,想开个wifi,在电脑上插上了个usb无线网卡然后开启“360免费WiFi”.但显示“无网络访问”,连上之后确实也不能访问外部网站. 二.处理办法 依次打开“控 ...
- Android (cocos2dx 网络访问)访问权限设置
Android开发应用程序时,如果应用程序需要访问网络权限,需要在 AndroidManifest.xml 中加入以下代码: 同样的如果用到其它的权限,也需要作出声明,部分权限列表如下: androi ...
- android 中获取网络状态、判断3G、2G、wifi网络、判断wifi是否打开、获取本机地址、获取本机串号IMEI整理
代码如下:package com.android.xym; import java.io.IOException; import java.net.HttpURLConnection; import ...
- 如何使用Reaver破解Wi-Fi网络的WPA密码
via: http://lifehacker.com/5873407/how-to-crack-a-wi+fi-networks-wpa-password-with-reaver 译者:Mr小眼儿 本 ...
- 在Wifi网络中嗅探明文密码(HTTP POST请求、POP等)
全世界,现在大约50%的网站没有使用SSL加密,天朝尤其多. 我们都知道通过HTTP发送的数据都是明文,没有使用任何加密,即使是在数据敏感的登录页面. 本文的目的是:如果你在不熟悉的网络环境中,要注意 ...
- 【技术贴】大型发布会现场的WiFi网络应该如何搭建?
WiFi网络的部署要远远比一般人想象的复杂,不是说放上几十个AP带宽就自动增加几十倍,恰恰相反,简单放几十个AP带宽会由于AP之间的竞争而 迅速使带宽下降为几乎不可用.实际上这个问题完全可以写一本书了 ...
- 主机WIFI网络环境下,Linux虚拟机网络设置
在主机使用WIFI网络环境下,怎么样进行虚拟机静态ip设置和连接互联网呢,原理什么太麻烦,另类的网络共享而已: 1.其实简单将网络连接模式设置成NAT模式即可. 2.虚拟网络编辑器依旧是桥接模式,选择 ...
- 九、Android学习第八天——广播机制与WIFI网络操作(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 九.Android学习第八天——广播机制与WIFI网络操作 今天熟悉了An ...
随机推荐
- docker 数据管理
一,介于创建docker容器退出或者删除容器数据无法得以保存以及docker容器中的分区较小的问题存在,未解决该问题,可以使用参考以下几种方法. 1,将宿主的目录挂载到容器中去. docker run ...
- PHP session 跨子域问题总结
Session主要分两部分: 一个是Session数据,该数据默认情况下是存放在服务器的tmp文件下的,是以文件形式存在 另一个是标志着Session数据的Session Id,Session ID, ...
- JS滚轮事件(mousewheel/DOMMouseScroll)了解
已经没有了小学生时代过目不忘的记忆力了,很多自己折腾的东西.接触的东西,短短1年之后就全然不记得了.比方说,完全记不得获取元素与页面距离的方法(getBoundingClientRect),或者是不记 ...
- asp.net 内部重定向
1. /* * 2. * Context.RewritePath() * 使用给定路径重写 URL.(内部重写) * 内部请求重写 */ public static void TestTwo() { ...
- 一个项目涉及到的50个Sql语句(整理版)
/* 标题:一个项目涉及到的50个Sql语句(整理版) 说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个语句. */ --1.学生表Student(S,Sname,Sage,Sse ...
- emjio表情转json
今天碰到了上传文字给服务端的时候emjio表情转成json就不对了 有大神帮忙解决了,记笔记记笔记--- #import "NSString+EncodedString.h" @i ...
- wince下写入数据到csv/txt文件中
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 迁移google code上的项目到本地版本库
今年五月份以来就已经连接不上google code了,翻*墙又极度不稳定,在忍受了几个月之后终于决定将项目搬离google code;经过研究之后终于实现了搬迁到本地,最后总结成下文.一者期望对有需要 ...
- for循环执行顺序
for循环的执行顺序用如下表达式: for(expression1;expression2;expression3) { expression4; } 执行的顺序应该是: 1)第一次循环,即初始化循环 ...
- oracle之Flash Recovery Area全面介绍 (转载)
1. 设置闪回恢复区闪回恢复区主要通过3个初始化参数来设置和管理 db_recovery_file_dest:指定闪回恢复区的位置db_recovery_file_dest_size:指定闪回恢复区的 ...