您的位置:首页 > 其它

WIFI设备

2015-11-25 14:50 225 查看

  1、WIFI设备是个啥?

    WIFI是个啥?请移步至百度百科

  2、WIFI有哪些状态?

    在Android的官方文档中定义了如下五种状态:

WIFI_STATE_DISABLED WIFI网卡不可用
WIFI_STATE_DISABLING WIFI网卡正在关闭
WIFI_STATE_ENABLED WIFI网卡可用
WIFI_STATE_ENABLING WIFI网卡正在打开
WIFI_STATE_UNKNOWN WIFI网卡状态不可知

  3、如何操作WIFI?

    要操作WIFI设备,就需要使用
Context.getSystemService(Context.WIFI_SERVICE)来获取WifiManager对象,并通过这个对象来管理我们的WIFI设备。


addNetwork(WifiConfiguration config) 添加一个config描述的WIFI网络,默认情况下,这个WIFI网络是DISABLE状态的。
calculateSignalLevel(int rssi , int numLevels) 计算信号的等级
compareSignalLevel(int rssiA, int rssiB) 对比网络A和网络B的信号强度
createWifiLock(int lockType, String tag) 创建一个WIFI 锁,锁定当前的WIFI连接
disableNetwork(int netId) 让一个网络连接失效
disconnect() 断开当前的WIFI连接
enableNetwork(int netId, Boolean disableOthers) 连接netId所指的WIFI网络,并是其他的网络都被禁用
getConfiguredNetworks() 获取网络连接的状态
getConnectionInfo() 获取当前连接的信息
getDhcpInfo() 获取DHCP 的信息
getScanResulats() 获取扫描测试的结果
getWifiState() 获取当前WIFI设备的状态
isWifiEnabled() 判断WIFI设备是否打开
pingSupplicant() ping操作,和PC的ping操作相同作用
ressociate() 重新连接WIFI网络,即使该网络是已经被连接上的
reconnect() 重新连接一个未连接上的WIFI网络
removeNetwork() 移除某一个网络
saveConfiguration() 保留一个配置信息
setWifiEnabled() 让一个连接有效
startScan() 开始扫描
updateNetwork(WifiConfiguration config) 更新一个网络连接

  4、如何得到周围的WIFI热点列表?

     如果要想得到周围的WIFI热点列表,可以使用WifiManager.getScanResults()返回一个ScanResult列表,ScanResult对象中,包含了以下几个属性:

BSSID 接入点的地址
SSID 网络的名字,唯一区别WIFI网络的名字
Capabilities 网络接入的性能
Frequency 当前WIFI设备附近热点的频率(MHz)
Level 所发现的WIFI网络信号强度

  5、如何连接上我的WIFI?

1 /**
2  * 根据ID值来自动连接WIFI网络
3  * @param index ID值
4  */
5 public void ConnectWifiBySSID(int index) {
6    // 索引大于配置好的网络索引返回
7    if (index > mWifiConfiguration.size()) {
8     return;
9    }
10    // 连接配置好的指定ID的网络
11    mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,true);
12 }
13 /**
14  * 根据WifiConfiguration对象来自动连接WIFI网络
15  * @param wcg WifiConfiguration对象
16  */
17 public void ConnectWifiByConfig(WifiConfiguration wifiConfiguration) {
18    int wcgID = mWifiManager.addNetwork(wifiConfiguration);
19    mWifiManager.enableNetwork(wcgID, true);
20 }


    没什么好解释的,可以直接看上面的代码段。

  6、如何查看已经连接上的WIFI信息?

    在Android的SDK中为我们提供了一个叫做WifiInfo的对象,这个对象可以通过WifiManager.getConnectionInfo()来获取。WifiInfo中包含了当前连接中的相关信息。

getBSSID() 获取BSSID属性
getDetailedStateOf() 获取客户端的连通性
getHiddenSSID() 获取SSID 是否被隐藏
getIpAddress() 获取IP 地址
getLinkSpeed() 获取连接的速度
getMacAddress() 获取Mac 地址
getRssi() 获取802.11n 网络的信号
getSSID() 获取SSID
getSupplicanState() 获取具体客户端状态的信息

三、总结

  以上就是WIFI的一些操作了,本来打算要介绍下Android中数据的传输的相关知识的,但是我由于数据传输还比较多,所以就放到明天的笔记中介绍了。

源码下载

作者:Libo@Deng

出处:http://www.cnblogs.com/cxcco/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

我的微博: 新浪微博
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: