一、獲取WiFi信息
通過Android系統提供的WifiManager類可以輕鬆獲取WiFi的狀態和相關信息。代碼示例如下:
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); String ssid = wifiInfo.getSSID(); int ip = wifiInfo.getIpAddress(); String macAddress = wifiInfo.getMacAddress(); int speed = wifiInfo.getLinkSpeed();
在上述代碼中,我們通過WifiManager獲取了當前的WiFiManager實例,並通過getConnectionInfo方法獲取了當前連接的WiFi信息,包括SSID、IP地址、MAC地址和連接速度。我們可以通過這些信息進行相關的操作和邏輯處理。
二、掃描可用WiFi列表
通過WifiManager類還可以掃描周圍可用的WiFi列表。代碼示例如下:
List scanResults = wifiManager.getScanResults(); for (ScanResult scanResult : scanResults) { String ssid = scanResult.SSID; String bssid = scanResult.BSSID; int signalStrength = scanResult.level; // ... }
在上述代碼中,我們通過getScanResults方法獲取周圍可用的WiFi列表,並逐一遍歷每一個ScanResult實例,獲取對應的SSID、BSSID和信號強度等信息,可以通過這些信息來判斷周圍WiFi的狀況。
三、連接指定WiFi
我們可以通過WifiConfiguration類來配置需要連接的WiFi信息,然後通過WifiManager的addNetwork方法添加到可用WiFi列表中。代碼示例如下:
WifiConfiguration wifiConfig = new WifiConfiguration(); wifiConfig.SSID = "\"" + ssid + "\""; wifiConfig.preSharedKey = "\"" + password + "\""; wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); int networkId = wifiManager.addNetwork(wifiConfig); wifiManager.enableNetwork(networkId, true);
在上述代碼中,我們通過設置WifiConfiguration類的SSID和preSharedKey屬性來配置需要連接的WiFi信息,然後將該配置添加到可用WiFi列表中,並通過enableNetwork方法指定需要連接的網絡ID即可實現連接指定WiFi的功能。
四、斷開當前WiFi連接
通過WifiManager的disconnect方法可以斷開當前的WiFi連接。代碼示例如下:
wifiManager.disconnect();
在上述代碼中,我們只需要調用disconnect方法即可實現WiFi的斷開連接功能。
代碼完整示例
下面給出完整的示例代碼,包括獲取WiFi信息、掃描可用WiFi列表、連接指定WiFi和斷開當前WiFi連接的功能:
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); String ssid = wifiInfo.getSSID(); int ip = wifiInfo.getIpAddress(); String macAddress = wifiInfo.getMacAddress(); int speed = wifiInfo.getLinkSpeed(); List scanResults = wifiManager.getScanResults(); for (ScanResult scanResult : scanResults) { String ssid = scanResult.SSID; String bssid = scanResult.BSSID; int signalStrength = scanResult.level; // ... } WifiConfiguration wifiConfig = new WifiConfiguration(); wifiConfig.SSID = "\"" + ssid + "\""; wifiConfig.preSharedKey = "\"" + password + "\""; wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); int networkId = wifiManager.addNetwork(wifiConfig); wifiManager.enableNetwork(networkId, true); wifiManager.disconnect();
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/156419.html