2014年(9)
分类: Android平台
2014-06-09 14:41:22
原文链接:http://blog.sina.com.cn/s/blog_8d9e056a01013l78.html
在中对Wifi操作,本身提供了一些有用的包,在android.net.wifi包下面。简单介绍一下:
大致可以分为四个主要的类ScanResult,wifiConfiguration,WifiInfo,WifiManager
(1)ScanResult,通过wifi 硬件扫描来获取周边的wifi 热点。
(2)wifiConfiguration 连通wifi 接入点需要获取到的信息。
(3)WifiInfo :
wifi 连通以后,可以通过此类获得一些已经连通的wifi 连接的信息获取当前链接的信息,方法::
getBSSID() 获取BSSID
getDetailedStateOf() 获取客户端的连通性
getHiddenSSID() 获得SSID 是否被隐藏
getIpAddress() 获取IP 地址
getLinkSpeed() 获得连接的速度
getMacAddress() 获得Mac 地址
getRssi() 获得802.11n 网络的信号
getSSID() 获得SSID
getSupplicanState() 返回具体客户端状态的信息
(4)wifiManager :管理wifi 连接,此类里面预先定义了许多常量,可以直接使用,不用再次创建:
String | ACTION_PICK_WIFI_NETWORK | Activity 动作: 选择一个WIFI网络连接。 |
int | ERROR_AUTHENTICATING | 出现一个验证错误问题. |
String | EXTRA_BSSID | String提供已接入点的BSSID. |
String | EXTRA_NETWORK_INFO | 联合网络信息. |
String | EXTRA_NEW_RSSI | 提供新的RSSI(信号强度). |
String | EXTRA_NEW_STATE | 查看新的请求状态。 |
String | EXTRA_PREVIOUS_WIFI_STATE | 当前Wi-Fi的状态 . |
String | EXTRA_SUPPLICANT_CONNECTED | 表示应用后台程序的连接已经获得或丢失。 |
String | EXTRA_SUPPLICANT_ERROR | 调用 getIntExtra(String, int)中发生错误时产生此错误问题. |
String | EXTRA_WIFI_INFO | 提供已连上的接入点的信息。 |
String | EXTRA_WIFI_STATE | 可用额外的整数型关键字表示Wi-Fi 是否启用, 禁用,正在启用,正在禁用,或者未知. |
String | NETWORK_IDS_CHANGED_ACTION | 配置的网络标识已被更改。 |
String | NETWORK_STATE_CHANGED_ACTION | 配置的网络状态已被更改。. |
String | RSSI_CHANGED_ACTION | RSSI (信号强度) 发生改变. |
String | SCAN_RESULTS_AVAILABLE_ACTION | 接入点扫描完成,并且结果已经可以获得。可以调用getScanResults()获得结果. |
String | SUPPLICANT_CONNECTION_CHANGE_ACTION | 广播行为表示连接已经建立或者丢失。 |
String | SUPPLICANT_STATE_CHANGED_ACTION | 请求一个接入点连接的状态已经改变。 |
int | WIFI_MODE_FULL | 在这种锁定模式,Wi-Fi将保持激活状态。自动尝试连接范围内,已经配置的接入点。同时发现未配置的接入点。 |
int | WIFI_MODE_FULL_HIGH_PERF | 在这种锁定模式,Wi-Fi将保持和WIFI_MODE_FULL相同的激活状态,不同的是在屏幕设备关闭后也会保持最小丢包和最小延时高功耗连接。因此应尽量不在非必要的情况下使用该模式。 |
int | WIFI_MODE_SCAN_ONLY | 在这种锁定模式,Wi-Fi将保持激活状态。但只能进行接入范围内的扫描,并且不会自动连接到已经配置的接入点,也不会自动进行扫描操作。需要应用明确的出发扫描操作。 |
String | WIFI_STATE_CHANGED_ACTION | 广播行为表示,当前Wi-Fi状态有可能是:已启用,已禁用,正在启用,正在禁用。 |
int | WIFI_STATE_DISABLED | Wi-Fi 被禁用。 |
int | WIFI_STATE_DISABLING | Wi-Fi 开始禁用,如果操作成功,状态为WIFI_STATE_ENABLED |
int | WIFI_STATE_ENABLED | Wi-Fi 已经被启用。. |
int | WIFI_STATE_ENABLING | Wi-Fi 开始启用,如果成功,状态为WIFI_STATE_ENABLED. |
int | WIFI_STATE_UNKNOWN | Wi-Fi 未知状态,在启用或禁用过程产生错误导致. |
方法:
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
int |
addNetwork(WifiConfiguration config)
添加一个新网络.
|
||||||||||
static int |
calculateSignalLevel(int rssi, int numLevels)
计算信号等级.
|
||||||||||
static int |
compareSignalLevel(int rssiA, int rssiB)
比较A和B的信号强度.
|
||||||||||
WifiManager.MulticastLock |
createMulticastLock(String tag)
创建多点传送锁。
|
||||||||||
WifiManager.WifiLock |
createWifiLock(int lockType, String tag)
创建一个新的wifi锁.
|
||||||||||
WifiManager.WifiLock |
createWifiLock(String tag)
创建一个新的wifi锁,以tag标记的参数.
|
||||||||||
boolean |
disableNetwork(int netId)
禁用一个以配置好的网络.
|
||||||||||
boolean |
disconnect()
取消当前接入点的连接.
|
||||||||||
boolean |
enableNetwork(int netId, boolean disableOthers)
允许当前已配置网络可连接.
|
||||||||||
List<WifiConfiguration> |
getConfiguredNetworks()
返回所有可配置的网络列表.
|
||||||||||
WifiInfo |
getConnectionInfo()
如果有动作,返回当前wifi连接的动态信息.
|
||||||||||
DhcpInfo |
getDhcpInfo()
Return the DHCP-assigned addresses from the last successful
DHCP request, if any.
|
||||||||||
List<ScanResult> |
getScanResults()
返回扫描出的网络列表.
|
||||||||||
int |
getWifiState()
获得wifi状态.
|
||||||||||
boolean |
isWifiEnabled()
返回wifi可用或不可用.
|
||||||||||
boolean |
pingSupplicant()
Check that the supplicant daemon is responding to
requests.
|
||||||||||
boolean |
reassociate()
(不管是否已连接)重新连接当前接入点.
|
||||||||||
boolean |
reconnect()
如果当前网络连接已丢失,重新连接当前接入点.
|
||||||||||
boolean |
removeNetwork(int netId)
从可配置网络列表中移除.
|
||||||||||
boolean |
saveConfiguration()
保存当前可配置网络列表.
|
||||||||||
boolean |
setWifiEnabled(boolean enabled)
启用或禁用wifi.
|
||||||||||
boolean |
startScan()
请求对接入点的扫描.
|
||||||||||
int |
updateNetwork(WifiConfiguration config)
更新网络或者结束一个已配置好的网络.
|