在Android设备上抓取WiFi数据通常指的是读取WiFi网络的相关信息,如连接到WiFi网络时的SSID、密码等。以下是一个简单的例子,展示如何使用WifiManager类获取当前连接的WiFi网络信息。

首先,在AndroidManifest.xml中添加必要的权限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

然后,在代码中,你可以通过以下方式获取WiFi信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo connectionInfo = wifiManager.getConnectionInfo();

// 获取网络的SSID
String ssid = connectionInfo.getSSID();
// 需要定位权限来获取SSID,对于API 23+,可能返回已格式化的字符串,如<SSID>
if (ssid.startsWith("\"") && ssid.endsWith("\"")) {
ssid = ssid.substring(1, ssid.length() - 1);
}

// 获取网络的BSSID
String bssid = connectionInfo.getBSSID();

// 获取网络的IP地址
int ipAddress = connectionInfo.getIpAddress();
String formattedIpAddress = Formatter.formatIpAddress(ipAddress);

// 获取网络的MAC地址
String macAddress = connectionInfo.getMacAddress();

// 获取网络的信号强度
int rssi = connectionInfo.getRssi();

同时注意:获取SSID需要ACCESS_FINE_LOCATION权限.