Android WIFI

Android Wifi開發(fā)

1.WIFI核心類WifiManager

public class WifiManager

extends Object

的java.lang.object

? android.net.wifi.WifiManager

這個(gè)類提供了管理Wi-Fi連接的所有方面的主要API。通過調(diào)用得到這個(gè)類的一個(gè)實(shí)例Context.getSystemService(Context.WIFI_SERVICE)。它涉及幾類產(chǎn)品:

配置網(wǎng)絡(luò)列表。該列表可以查看和更新,單個(gè)條目的屬性進(jìn)行修改。

當(dāng)前活動的Wi-Fi網(wǎng)絡(luò),如果有的話。連接可以建立或拆除,并且有關(guān)網(wǎng)絡(luò)的狀態(tài)的動態(tài)信息可以查詢。

接入點(diǎn)的掃描的結(jié)果,包含足夠的信息來什么接入點(diǎn)連接到?jīng)Q策。

它定義了在任何類型的Wi-Fi狀態(tài)變化的各種轉(zhuǎn)播意向動作的名稱。

?????Wi-Fi具體操作時(shí)要使用的API。要執(zhí)行一些與在抽象的層面與網(wǎng)絡(luò)連接操作,使用ConnectivityManager。

常用方法:

int addNetwork(WifiConfiguration config)添加一個(gè)新的網(wǎng)絡(luò)描述為一套配置網(wǎng)絡(luò)。

boolean disableNetwork(int netId)禁用配置的網(wǎng)絡(luò)。

boolean disconnect()從當(dāng)前活動的接入點(diǎn)撇清。

boolean enableNetwork(int netId, boolean disableOthers)允許之前配置的網(wǎng)絡(luò)與關(guān)聯(lián)。

List?getConfiguredNetworks()返回請求者配置的所有網(wǎng)絡(luò)的列表。

WifiInfo getConnectionInfo()返回有關(guān)當(dāng)前Wi-Fi連接的動態(tài)信息,如果有的話是積極的。

DhcpInfo getDhcpInfo()從最后一次成功DHCP請求返回DHCP分配的地址,如果有的話。

List?getScanResults()返回最新的接入點(diǎn)掃描的結(jié)果。

int getWifiState()獲取Wi-Fi功能的狀態(tài)。

boolean isWifiEnabled()返回的Wi-Fi是否已啟用或禁用。

boolean reconnect()重新連接到當(dāng)前活動的訪問點(diǎn)上,如果我們目前正在斷開。

boolean removeNetwork(int netId)從配置網(wǎng)絡(luò)的列表中刪除指定的網(wǎng)絡(luò)。

boolean setWifiEnabled(boolean enabled)啟用或禁用無線網(wǎng)絡(luò)連接。

boolean startScan()請求接入點(diǎn)的掃描。

int updateNetwork(WifiConfiguration config)更新現(xiàn)有配置的網(wǎng)絡(luò)的網(wǎng)絡(luò)描述。

2.添加權(quán)限


3.開始wifi功能


4.在onCreate方法中添加wifi狀態(tài)監(jiān)聽器

????????4.1.注冊廣播監(jiān)聽器

????????4.2.廣播接收者


????????4.3.記得廣播的取消注冊監(jiān)聽

5.關(guān)閉WiFi

6.添加并連接wifi

????????6.1點(diǎn)擊連接wifi

????????6.2在wifiHelper中實(shí)現(xiàn)addNetWorkWAP這個(gè)方法

????????6.3創(chuàng)建一個(gè)wifi配置信息

7.測試網(wǎng)絡(luò)(使用Ping命令來測試)

通過直接Ping一個(gè)網(wǎng)站來測試該wifi是否有網(wǎng)絡(luò)

8.斷開某個(gè)已經(jīng)連接的wifi


9.搜索附近的wifi

在Android6.0以后,默認(rèn)是搜索不要附近WIFI的列表的,需要將其APP加載到系統(tǒng)的APP安裝目錄(/system/app)下,也可以添加如下權(quán)限,但是該權(quán)限需要用戶設(shè)置同意,所以我們可以引導(dǎo)用戶去啟動位置的權(quán)限。

在添加如下權(quán)限后,還需要提示用戶讓其打開手機(jī)的gps信號開關(guān),否則將無法獲取wifi列表。

????????9.1掃描附近wifi


????????9.2實(shí)現(xiàn)點(diǎn)擊收索wifi


????????9.3編寫WifiAdatper


10.點(diǎn)擊連接附近wifi

????????10.1點(diǎn)擊搜索出來的wifi


????????10.2初始化一個(gè)輸入密碼的對話框

????????10.3在item點(diǎn)擊事件中彈出對話框:

????????10.4在wifiHelper中添加checkAuth方法,用來檢查掃描出來的wifi是否需要密碼

????????10.5在wifiHelper中添加了方法connectSavedWifi,用來重連先前已經(jīng)連接過的wifi:

????????10.6彈出對話框供用戶輸入密碼:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容