WifiManager enableNetwork возвращается к предыдущей сети через несколько секунд
На 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 ответ
Мне удалось решить эту проблему, удалив существующий конфиг из настроенного списка Wi-Fi. Сеть не будет отключаться от нового конфига.
List<WifiConfiguration> wifiConfigurationList = wifiManager.getConfiguredNetworks();
for (WifiConfiguration removeConfig : wifiConfigurationList) {
if (removeConfig.SSID.equals(desiredSSID)) {
wifiManager.removeNetwork(removeConfig.networkId);
break;
}
}
Просто добавьте сеть еще раз, как описано выше, чтобы устранить проблему.