WiFiManager EnableNetwork()在android 10上不工作

1 人关注

在安卓10手机上。我很少参与到一个问题中。

Enablenetwork()函数不起作用。

Here is some code

            WifiConfiguration Config = new WifiConfiguration();
            Config.Ssid = "\"" + SSID + "\"";
            temp = WiFi.AddNetwork(Config);
            WiFi.SaveConfiguration();
            bool Enable_Success = WiFi.EnableNetwork(temp, true);

在我的设备(三星S9,安卓10)上

The function just sometimes works. Sometimes not working.

不工作时。我观察我的手机的wifi状态。

The wifi just keep connecting to current connected SSID.

甚至没有尝试连接到目标SSID。只是保持它的当前状态。

会有什么问题呢?

android
xamarin
xamarin.android
wifimanager
CC.Wang
CC.Wang
发布于 2020-05-23
3 个回答
igarasi
igarasi
发布于 2020-10-06
已采纳
0 人赞同

也许你可以先尝试断开其他网络的连接。

        wifiManager.disconnect();// disconnect first
        WifiConfiguration Config = new WifiConfiguration();
        Config.Ssid = "\"" + SSID + "\"";
        temp = WiFi.AddNetwork(Config);
        WiFi.SaveConfiguration();
        bool Enable_Success = WiFi.EnableNetwork(temp, true);
    
Mihail Duchev
Mihail Duchev
发布于 2020-10-06
0 人赞同

假设网络是开放的(意味着没有任何密码),那么你需要在配置对象中明确地说出来。

Config.AllowedKeyManagement.Set((int)KeyManagementType.None);
    
谢谢你的答复但是当前连接的SSID和目标SSID。都有密码保护。而且我所从事的情况也不是100%发生的。有时它能工作。有时不行。但这两种情况都是在同一个环境中。
你在设置他们的 AllowedKeyManagement 属性吗?
David
David
发布于 2020-10-06
0 人赞同

安卓10使用了一套与以前的安卓版本不同的功能来连接wifi。你将想做这样的事情。

var connectivity_manager = GetSystemService(Context.ConnectivityService) as ConnectivityManager;    
var wifi_network_specifier = (new WifiNetworkSpecifier.Builder()).SetSsid(ssid).Build();