以Xamarin Forms Android 10以编程方式连接到wifi

问题描述 投票:-1回答:2

我无法在Android 10中连接到wifi。直到Android 9为止,我的代码都可以正常工作,我一直试图在Android 10上实现相同的功能,但没有任何运气:(

        private void RequestNetwork(string _ssid, string _passphrase)
        {
            var specifier = new WifiNetworkSpecifier.Builder()
                .SetSsid(_ssid)
                .SetWpa2Passphrase(_passphrase)
                .Build();

            var request = new NetworkRequest.Builder()
                .AddTransportType(TransportType.Wifi) // we want WiFi
                .RemoveCapability(NetCapability.Internet) // Internet not required
                .SetNetworkSpecifier(specifier) // we want _our_ network
                .Build();

            NetworkCallback _callback = new NetworkCallback();
            connection_manager.RequestNetwork(request, _callback);
        }

        private class NetworkCallback : ConnectivityManager.NetworkCallback
        {
            public Action NetworkAvailable { get; set; }
            //bool IsBusy = false;
            public override void OnAvailable(Network network)
            {
                base.OnAvailable(network);
                connection_manager.BindProcessToNetwork(network);
            }

            public override void OnUnavailable()
            {
                base.OnUnavailable();
            }
        }
c# android xamarin xamarin.forms xamarin.android
2个回答
0
投票

我看到您根据注释从my blog post复制了代码。我想您已经尝试运行我在GitHub上提供的示例应用程序了?

无论如何,首先请确保已在清单中添加了以下权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

除了缺少权限之外,您提供的代码应该可以工作,并显示如下所示的系统对话框:

Android "Connect to device" system dialog


-1
投票

根据官方Android开发人员提供的this documentation 此功能已禁用从Android 10开始。

他们建议使用新的settings panel来控制wi-fi设置。

定位到Android 10或更高版本的应用无法启用或禁用Wi-Fi。 WifiManager.setWifiEnabled()方法始终返回false。如果需要提示用户启用和禁用Wi-Fi,请使用设置面板。

很遗憾,目前没有机会通过Xamarin显示设置面板,但是我敢肯定Xamarin开发人员将在不久的将来发布此功能。

© www.soinside.com 2019 - 2024. All rights reserved.