一.WIFI简介
Wi-Fi是一种可以将个人电脑、手持设备(如PDA、手机)等终端以无线方式互相连接的技术,即一种无线联网技术。WIFI通过无线电波来连网;常见的就是一个无线路由器,那么在这个无线路由器的电波覆盖的有效范围都可以采用WIFI连接方式进行联网,如果无线路由器连接了一条ADSL线路或者别的上网线路,则又被称为“热点”。
二.开发WIFI功能模块所需的权限:
|
1
2
3
4
|
<uses-permission
android:name="android.permission.CHANGE_NETWORK_STATE"/><uses-permission
android:name="android.permission.CHANGE_WIFI_STATE"/><uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission
android:name="android.permission.ACCESS_WIFI_STATE"/> |
三.WIFI功能开发的几个重要类的介绍
1.ScanResult
(1)作用:该类主要是通过wifi 硬件的扫描来获取一些周边的wifi 热点的信息。
(2)成员变量: BSSID:WIFI热点的地址
SSID:网络名称
capabilities:描述WIFI热点的认证,密钥管理以及加密方案等相关信息
frequency:客户端与WIFI热点通信信道的频率
level:信号电平
2.wifiConfiguration
(1)作用:该类用来描述配置好的WIFI网络的信息。
(2)主要的成员变量:
BSSID:当设置好后,这个网络配置入口只能当是指定BSSID的AP时候才调用。
SSID:该网络的SSID
hiddenSSID:隐藏的SSID,即该网络不对SSID进行广播
networkId:这个网络配置入口的ID
3.WifiInfo
(1)作用:wifi 已经连接成功以后,可以通过这个类获得一些已经连通的wifi 连接的信息获取当前链接的信息
(2)主要方法:
getBSSID() 获取BSSID
getSSID() 获得SSID
getDetailedStateOf() 获取客户端的连通性
getHiddenSSID() 获得SSID 是否被隐藏
getIpAddress() 获取IP 地址
getLinkSpeed() 获得连接的速度
getMacAddress() 获得Mac 地址
getRssi() 获得802.11n 网络的信号
getSupplicanState() 返回具体客户端状态的信息
4.wifiManager
(1)作用:该类用来管理WIFI连接的一个类。
addNetwork(WifiConfiguration config) 通过获取到的网络的链接状态信息,来添加网络
calculateSignalLevel(int rssi , int numLevels) 计算信号的等级
compareSignalLevel(int rssiA, int rssiB) 对比连接A 和连接B
createWifiLock(int lockType, String tag) 创建一个wifi 锁,锁定当前的wifi 连接
disableNetwork(int netId) 让一个网络连接失效
disconnect() 断开连接
enableNetwork(int netId, Boolean disableOthers) 连接一个连接
getConfiguredNetworks() 获取网络连接的状态
getConnectionInfo() 获取当前连接的信息
getDhcpInfo() 获取DHCP 的信息
getScanResulats() 获取扫描测试的结果
getWifiState() 获取一个wifi 接入点是否有效
isWifiEnabled() 判断一个wifi 连接是否有效
pingSupplicant() ping 一个连接,判断是否能连通
ressociate() 即便连接没有准备好,也要连通
reconnect() 如果连接准备好了,连通
removeNetwork() 移除某一个网络
saveConfiguration() 保留一个配置信息
setWifiEnabled() 让一个连接有效
startScan() 开始扫描
updateNetwork(WifiConfiguration config) 更新一个网络连接的信息
此外wifiManaer 还提供了一个内部的子类,也就是wifiManagerLock,WifiManagerLock 的作用是这样的,在普通的状态下,如果我们的wifi 的状态处于闲置,那么网络的连通,将会暂时中断。但是如果我们把当前的网络状态锁上,那么wifi 连通将会保持在一定状态,当然接触锁定之后,就会恢复常态.
四、网卡的几种状态:
WIFISTATEDISABLED 已关闭(1)
WIFISTATEDISABLING 正在关闭中(0)
WIFISTATEENABLED 已开启(3)
WIFISTATEENABLING 正在开启中(2)
WIFISTATEUNKNOWN 网卡状态未知
WIFI的信号强度**
WIFI的信号强度即所谓的DB值是评判一个路由性能的标准,但很多人可能不知道其实它与我们通常所看到的格数之间是有4格标准和5各标准之说,
5格标准就是通常在产品右下角转态栏所看到的,对应关系为:
信号格数 | db值
0 | <=-89
1 | [-88,-78]
2 | [-77,-67]
3 | [-66, -56]
4 | >=-55
4格标准就是设置或WIFI分析仪里所看到的,对应关系为:
信号格数 | db值
1 | <=-86
2 | [-85,-71]
3 | [-70, -56]
4 | >=-55
本文介绍了Android WiFi功能的开发,包括WIFI简介、所需权限、关键类如ScanResult、WifiConfiguration、WifiInfo以及WifiManager的详细说明,还涵盖了网卡状态和信号强度的相关知识。

2799

被折叠的 条评论
为什么被折叠?



