Когда мы подключаемся к speci c wifi на android 10, тогда inte rnet не работает, а inte rnet доступен в маршрутизаторе - PullRequest
0 голосов
/ 26 февраля 2020

Я работаю на платформе Xamarin android и после android 10 остановилось обновление "Автоматически подключаться к wifi через код". Так что после использования android 10 код wifi через запрос работал успешно, и моя проблема после wifi Inte rnet не работает на моем телефоне. Если мы подключаемся к этой сети вручную, то все в порядке. Итак, я попробовал два решения для этого:

1) Если мы удалим эту строку RemoveCapability (NetCapability.Inte rnet), то Wi-Fi подключится успешно, но inte rnet не работает.
2) если мы добавим опцию AddCapability (NetCapability.Inte rnet), то запрос на всплывающее окно не будет получен, а Wi-Fi не подключен.

Поэтому, пожалуйста, посмотрите на это.

1) Я хочу подключиться к Wi-Fi через код в android 10, используя xamarin.
2) Часть, которую я сделал, это подключение к Wi-Fi завершена.
3) Проблема, с которой я столкнулся, после inte rnet не работает.

Если я подключаюсь к Wi-Fi вручную, тогда inte rnet работает

try
                {
                    var connectivityManager = Android.App.Application.Context.GetSystemService(Context.ConnectivityService) as ConnectivityManager;
                    WifiManager wifiManager = (WifiManager)Android.App.Application.Context.GetSystemService(Context.WifiService);
                    if (!wifiManager.IsWifiEnabled)
                    {
                        Forms.Context.StartActivity(new Intent(Android.Provider.Settings.ActionWifiSettings));
                        return false;
                    }

                    var callback = new NetworkCallback(connectivityManager)
                    {
                        NetworkAvailable = network =>
                        {
                            Console.WriteLine("Connected");
                            MessagingCenter.Send<string, Boolean>("ConnectModel", "connecttowifi", true);
                        },
                        NetworkUnavailable = () =>
                        {
                            Console.WriteLine("Not Connected");
                            MessagingCenter.Send<string, Boolean>("ConnectModel", "connecttowifi", false);
                        }
                    };
                    var specifier = new WifiNetworkSpecifier.Builder()
                    .SetSsid(ssid)
                    .SetWpa2Passphrase(password)
                    .Build();
                    var request = new NetworkRequest.Builder()
                        .AddTransportType(TransportType.Wifi)
                        //.AddCapability(NetCapability.Internet)
                        //.RemoveCapability(NetCapability.Internet)
                        .SetNetworkSpecifier(specifier)
                        .Build();
                    connectivityManager.RequestNetwork(request, callback);
                    return true;
                }
                catch (Exception e)
                {
                    Console.Write(e.Message);
                    return false;
                }
...