我正在创建一个 Android 应用程序,它允许您连接到具有特定 BSSID 的 WiFi。我已经实现了扫描所有 wifi 并根据 WiFi 网络安全类型进行 WiFi 配置的部分。我还使用特定的 BSSID 实现了与 WiFi 网络的连接。
但我有一个问题:与特定 BSSID 的连接适用于安全网络,但不适用于开放网络,我不知道为什么。事实上,这种与具有特定 BSSID 的开放网络的连接适用于三星 Galaxy S4 或更新版本,但不适用于 Galaxy S2 和 S3……这真的很奇怪。在 S2 和 S3 上,连接期间不考虑 BSSID。
这是我用来为开放网络创建配置并尝试使用特定 BSSID 连接它的示例代码:
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + wifiItem.getSSID() + "\"";
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
WifiManager wifiManager = (WifiManager) parentActivity.getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
conf.BSSID = wifiItem.getBSSID();
wifiManager.updateNetwork(conf);
wifiManager.saveConfiguration();
for (WifiConfiguration wifiConfiguration : wifiManager.getConfiguredNetworks()) {
if (wifiConfiguration.SSID.equals("\"" + wifiItem.getSSID() + "\"")) {
wifiManager.disconnect();
wifiConfiguration.BSSID = wifiItem.getBSSID();
wifiManager.updateNetwork(wifiConfiguration);
wifiManager.enableNetwork(wifiConfiguration.networkId, true);
wifiManager.reconnect();
}
如果有人可以帮助我,那就太酷了。我花了很多时间,真的不明白这个问题。