一、获取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列表。代码示例如下:
ListscanResults = 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(); ListscanResults = 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();