WifiManager enableNetwork возвращается к предыдущей сети через несколько секунд - PullRequest
0 голосов
/ 18 октября 2018

На Android 8.1.0 и выше я сталкиваюсь с серьезной проблемой.При подключении к сети без интернета с использованием enableNetwork Android через несколько секунд решает вернуть устройство в предыдущую сеть.

Я намеренно подключился к требуемой сети и планирую использовать bindToNetwork чтобы гарантировать, что весь трафик проходит через сеть, однако Android, кажется, игнорирует привязку и просто очень быстро отключается после этого.

Я видел несколько вариантов ответа на этот вопрос здесь, все без ответов,к сожалению.

Я создаю соединение с сетью с помощью следующего кода.Я вижу, как подключается сеть.

WifiConfiguration conf = new WifiConfiguration();
conf.SSID = desiredSSID;
if (desiredNetwork.has("password")) {
    conf.preSharedKey = String.format("\"%s\"", desiredNetwork.get("password"));
}
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
conf.allowedProtocols.set(WifiConfiguration.Protocol.RSN);

int networkID = wifiManager.addNetwork(conf);
wifiManager.enableNetwork(networkID, true);

Существует ли доступная опция, позволяющая отключить это поведение, поскольку я намеренно подключаюсь к сети без доступа к Интернету.

Спасибо.

1 Ответ

0 голосов
/ 24 октября 2018

Мне удалось решить эту проблему, удалив существующий конфиг из настроенного списка Wi-Fi.Сеть не будет отключаться от новой конфигурации.

List<WifiConfiguration> wifiConfigurationList = wifiManager.getConfiguredNetworks();

for (WifiConfiguration removeConfig : wifiConfigurationList) {
    if (removeConfig.SSID.equals(desiredSSID)) {
        wifiManager.removeNetwork(removeConfig.networkId);
        break;
    }
}

Просто добавьте сеть еще раз, как описано выше, чтобы устранить проблему.

...