簡化Android Wifi開發(fā),已實現(xiàn)常用的功能,比如獲取WiFi管理,WiFi列表,斷開、清除或者連接WiFi。
Github地址(別下demo了,不是少這個就是少那個,直接用library干就完了)
https://github.com/hacknife/WifiManager
[作者主頁](https://github.com/hacknife)
注意!
注意!
注意!
注意:Android 9 之后 wifi掃描做了限制,前臺應用2分鐘之內(nèi)最多允許掃描4次wifi列表
所以,要么你就老老實實調(diào)系統(tǒng)wifi
要么你就 跟騰訊wifi管家、萬能wifi鑰匙之類的軟件一樣,targetSdkVersion 為26、27。
下面開始介紹大致用法
特點
- 根據(jù)信號強度排序
- 連接或操作中的WIFI自動置頂
- 自動刷新WIFI列表
- 支持常見Wifi操作

screenshots.png
概述
WifiManager主要是由IWifiManager和IWifi組成,IWifiManager中可實現(xiàn)三個接口,完成Wifi列表數(shù)據(jù)更新
Class
IWifiManager
| 方法 | 功能 |
|---|---|
| isOpened() | WIFI是否打開 |
| openWifi() | 打開WIFI |
| closeWifi() | 關(guān)閉WIFI |
| scanWifi() | 掃描WIFI。此方法為異步操作,掃描結(jié)果會通過接口回掉 |
| disConnectWifi() | 斷開當前連接 |
| connectEncryptWifi(IWifi wifi, String password) | 通過密碼,連接WIFI |
| connectSavedWifi(IWifi wifi) | 連接已保存的WIFI |
| connectOpenWifi(IWifi wifi) | 連接開放的WIFI |
| removeWifi(IWifi wifi) | 清除已保存的WIFI |
| getWifi() | 獲取WIFI列表。此方法不建議使用,若是WIFI列表有變化會通過接口回調(diào) |
| setOnWifiConnectListener(OnWifiConnectListener listener) | wifi連接狀態(tài)變化監(jiān)聽 |
| setOnWifiStateChangeListener(OnWifiStateChangeListener listener) | wifi狀態(tài)變化監(jiān)聽 |
| setOnWifiChangeListener(OnWifiChangeListener listener) | wifi列表變化監(jiān)聽。包含WiFi數(shù)目變化,WiFi狀態(tài)變化等,用戶只需要展示即可 |
| destroy() | IWifiManager不需要使用時,需銷毀 |
IWifi
| 方法 | 功能 |
|---|---|
| name() | Wifi名稱 |
| isEncrypt() | 是否加密 |
| isSaved() | 密碼是否保存 |
| isConnected() | 是否連接 |
| encryption() | 加密類型描述,例如:WEP等 |
| level() | 信號強度 |
| ip() | 若當前WiFi連接,ip不為空 |
| description() | wifi描述 |
| description2() | wifi描述,含Ip |
OnWifiChangeListener
| 方法 | 功能 |
|---|---|
| onWifiChanged(List wifis) | wifi列表,wifi所有變化都會通過此方法,只需要展示此列表即可 |
OnWifiConnectListener
| 方法 | 功能 |
|---|---|
| onConnectChanged(boolean status) | wifi是否連接 |
OnWifiStateChangeListener
| 方法 | 功能 |
|---|---|
| onStateChanged(State state) | wifi狀態(tài),例如:開啟中,已開啟,關(guān)閉中,已關(guān)閉 |
使用說明
1.獲取IWifiManager
IWifiManager.create(Context context);
2.銷毀IWifiManager
iWifiManager.destroy();
快速引入項目
合并以下代碼到需要使用的Module的dependencies中。
dependencies {
...
implementation 'com.hacknife:wifimanager:1.0.2'
}