Android O WifiManager.enableNetwork()无法工作

Android O WifiManager.enableNetwork()无法工作,android,Android,首先,我用手机手动设置了两个wifi,然后使用WifiManager.enableNetwork()我可以成功切换wifi,但几秒钟后,wifi切换回以前的wifi,原因是什么? 请告诉我 设备:华硕ZenFone 5(安卓8.0.0) 代码: void connectWiFi(字符串networkSSID){ int networkId=getNetworkId(networkSSID); wifiManager.disconnect(); wifiManager.enableNetwork(

首先,我用手机手动设置了两个wifi,然后使用
WifiManager.enableNetwork()
我可以成功切换wifi,但几秒钟后,wifi切换回以前的wifi,原因是什么? 请告诉我

设备:华硕ZenFone 5(安卓8.0.0)

代码:

void connectWiFi(字符串networkSSID){
int networkId=getNetworkId(networkSSID);
wifiManager.disconnect();
wifiManager.enableNetwork(networkId,true);
wifiManager.reconnect();
}
int getNetworkId(字符串ssid){
列表配置=wifiManager.getConfiguredNetworks();
用于(WifiConfiguration配置:配置){
如果(config.SSID!=null&&config.SSID.equals(“\”+SSID+“\”)){
返回config.networkId;
}
}
返回-1;
}
我找到了答案


首先,使用广播收听WiFi断开连接,然后使用
wifiManager.disconnect()
,等待广播断开连接,然后使用
wifiManager.enableNetwork(networkId,true)

可能另一个网络的信号电平不好,这就是它切换到旧网络的原因?顺便说一句,你的英语对我来说还可以。谢谢你的修改,wifi信号非常好,手动切换wifi也可以正确连接,但是使用“WifiManager.enableNetwork()”会出现上述问题。我可以说什么,我爱你“等待广播断开”是什么意思?你能添加一个代码示例吗?@ElJazouli,你能详细说明你是如何解决这个问题的吗?OP很久没有上线了。@Keselme@Lance我这么做已经很久了,所以我不太记得了,但如果是我一年前读到的,我会说有一个广播接收器可以监听wifi连接/断开操作,然后,在某个时候,如果您想连接到wifi,您需要先调用
wifiManager.disconnect()
,然后在广播接收器上获得回调后,再连接到所需的wifi。请参阅:
void connectWiFi(String networkSSID) {
    int networkId = getNetworkId(networkSSID);
    wifiManager.disconnect();
    wifiManager.enableNetwork(networkId, true);
    wifiManager.reconnect();
}

int getNetworkId(String ssid) {
    List<WifiConfiguration> configurations = wifiManager.getConfiguredNetworks();
    for (WifiConfiguration config : configurations) {
        if (config.SSID != null && config.SSID.equals("\"" + ssid + "\"")) {
            return config.networkId;
        }
    }
    return -1;
}