Android WifiConfiguration

Я пытаюсь подключиться к конкретному BSSID, что оказывается проблематичным. Я получаю BSSID, к которому хочу подключиться в ScanResult, Затем я передаю это в функцию, которая настроит WifiConfiguration используя BSSID и подключитесь к нему. Однако устройство на самом деле не подключается к этой сети.

Чтобы увидеть, что происходит, я распечатал все настроенные сети, просматривая WifiManager"s getConfiguredNetworks() функция, и я вижу, что почти все настроенные сети имеют null в качестве BSSID, даже тот, который я настроил вручную. Есть также одна сеть, которая имеет any как его запись BSSID.

Что именно делает поле BSSID в WifiConfiguration имею в виду? В документации говорится:

public String BSSID

Когда установлено, эта запись конфигурации сети должна использоваться только при связывании с AP, имеющей указанный BSSID. Значение представляет собой строку в формате MAC-адреса Ethernet, например, XX: XX: XX: XX: XX: XX, где каждый X является шестнадцатеричной цифрой.

any а также null конечно не в этом формате. Вот код, который я использую для распечатки:

for (WifiConfiguration config : wifiManager.getConfiguredNetworks()) {
    Log.d("TEST", config.BSSID + " " + config.status + " " + config.priority + " " + config.SSID);
}

Изменить: я добавил toString() к моему заявлению печати, когда я делаю WifiConfiguration. призвание configuration.BSSID возвращается null в то время как toString дает мне BSSID. Что тут происходит?

1 ответ

Решение

Ну, кажется, что по какой-то причине Android волнуется, если вы установили BSSID, а не SSID. Установка SSID также приводит к тому, что BSSID отображается как следует.

Другие вопросы по тегам