WifiManager enableNetwork 几秒钟后恢复到以前的网络
WifiManager enableNetwork reverts to previous network after a few seconds
在 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);
是否有禁用此行为的可用选项,因为我有意连接到没有可用互联网的网络。
谢谢。
我能够通过从已配置的 wifi 列表中删除现有配置来解决此问题。网络不会与新配置断开连接。
List<WifiConfiguration> wifiConfigurationList = wifiManager.getConfiguredNetworks();
for (WifiConfiguration removeConfig : wifiConfigurationList) {
if (removeConfig.SSID.equals(desiredSSID)) {
wifiManager.removeNetwork(removeConfig.networkId);
break;
}
}
只需重新添加网络即可解决问题。
在 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);
是否有禁用此行为的可用选项,因为我有意连接到没有可用互联网的网络。
谢谢。
我能够通过从已配置的 wifi 列表中删除现有配置来解决此问题。网络不会与新配置断开连接。
List<WifiConfiguration> wifiConfigurationList = wifiManager.getConfiguredNetworks();
for (WifiConfiguration removeConfig : wifiConfigurationList) {
if (removeConfig.SSID.equals(desiredSSID)) {
wifiManager.removeNetwork(removeConfig.networkId);
break;
}
}
只需重新添加网络即可解决问题。