Но у меня есть проблема: подключение к определенному BSSID хорошо работает для защищенных сетей, но не работает для открытых сетей, и я не знаю, почему. Действительно, это подключение к открытой сети с определенным BSSID работает на Samsung 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();
}
Подробнее здесь: https://stackoverflow.com/questions/321 ... id-android