二、WIFI有哪些狀態?
在Android的官方文檔中定義了以下五種狀態:網絡
-
- WIFI_STATE_DISABLED WIFI網卡不可用
- WIFI_STATE_DISABLING WIFI網卡正在關閉
- WIFI_STATE_ENABLED WIFI網卡可用
- WIFI_STATE_ENABLING WIFI網卡正在打開
- WIFI_STATE_UNKNOWN WIFI網卡狀態不可知
三、如何操做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) 更新一個網絡鏈接
四、如何獲得周圍的WIFI熱點列表?
若是要想獲得周圍的WIFI熱點列表,可使用WifiManager.getScanResults()返回一個ScanResult列表,ScanResult對象中,包含了如下幾個屬性:測試
-
- BSSID 接入點的地址
- SSID 網絡的名字,惟一區別WIFI網絡的名字
- Capabilities 網絡接入的性能
- Frequency 當前WIFI設備附近熱點的頻率(MHz)
- Level 所發現的WIFI網絡信號強度
五、如何鏈接上個人WIFI?spa
沒什麼好解釋的,能夠直接看上面的代碼段。code
六、如何查看已經鏈接上的WIFI信息?
在Android的SDK中爲咱們提供了一個叫作WifiInfo的對象,這個對象能夠經過WifiManager.getConnectionInfo()來獲取。WifiInfo中包含了當前鏈接中的相關信息。對象
-
-
- getBSSID() 獲取BSSID屬性
- getDetailedStateOf() 獲取客戶端的連通性
- getHiddenSSID() 獲取SSID 是否被隱藏
- getIpAddress() 獲取IP 地址
- getLinkSpeed() 獲取鏈接的速度
- getMacAddress() 獲取Mac 地址
- getRssi() 獲取802.11n 網絡的信號
- getSSID() 獲取SSID
- getSupplicanState() 獲取具體客戶端狀態的信息