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 ...
随机推荐
- Canvas绘图方法和图像处理方法(转)
转自:http://javascript.ruanyifeng.com/htmlapi/canvas.html 概述 Canvas API(画布)用于在网页实时生成图像,并且可以操作图像内容,基本上它 ...
- iOS_block内存分析
----------------------MRC情况下Block内存分析---------------------------- 1.如果在block中使用全局变量,他为了持有这个变量,会将对应的对 ...
- 【转载】iOS 设置Launch Image 启动图片(适用iOS9)
Step1 1.点击Image.xcassets 进入图片管理,然后右击,弹出"New Launch Image" 2.如图,右侧的勾选可以让你选择是否要对ipad,横屏,竖屏,以 ...
- 关于UIWebview的属性的介绍
/* ViewController.h 文件 */ #import <UIKit/UIKit.h> @interface ViewController : ...
- 设计模式 之 Organizing the Catalog 组织目录
Design patterns vary in their granularity and level of abstraction. Because thereare many design pat ...
- Windows7下MySQL5.6.15免安装版的配置(来自yang362046076)
1.下载mysql-5.5.20-win32.zip,解压到D:\dev,D盘的dev文件夹下就会出现mysql-5.5.20-win32目录,将其重命名为mysql. 2.配置MYSQL的环境变量 ...
- HTML5简单入门系列(六)
前言 之前几篇已经将HTML5的主要新增元素和特性简单介绍完毕,LZ一直在犹豫还要不要把其他元素也写出来,因为其实没什么东西可以写,就是自己用到时看一下就行.不过为了入门系列的完整,犹豫再三,还是决定 ...
- [Head First Python]4. summary
1- strip()方法可以从字符串去除不想要的空白符 (role, line_spoken) = each_line.split(":", 1) line_spoken = li ...
- 镜像树(dfs)
1214: J.镜像树 时间限制: 1 Sec 内存限制: 64 MB提交: 18 解决: 7 标签提交统计讨论版 题目描述 一棵二叉树,若其与自己的镜像完全相同,就称其为镜像树(即这棵二叉树关于 ...
- SQL Sever 各版本下载 SQL Server 2012下载SQL Server 2008下载SQL Server 2005
SQL Server 2012SQL Server 2012 开发版(DVD)(X64,X86)(中文简体)ed2k://|file|cn_sql_server_2012_developer_edit ...