Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin 当我们连接到安卓10上的特定wifi时,当路由器中的互联网可用时,互联网将无法运行_Xamarin_Xamarin.forms_Xamarin.android_Xamarin Studio - Fatal编程技术网

Xamarin 当我们连接到安卓10上的特定wifi时,当路由器中的互联网可用时,互联网将无法运行

Xamarin 当我们连接到安卓10上的特定wifi时,当路由器中的互联网可用时,互联网将无法运行,xamarin,xamarin.forms,xamarin.android,xamarin-studio,Xamarin,Xamarin.forms,Xamarin.android,Xamarin Studio,我在Xamarin android平台上工作,在android 10更新后,“通过代码自动连接到wifi”已停止。因此,在使用android 10后,wifi通过请求的代码成功工作,我的问题是wifi连接互联网在我的手机上无法工作。如果我们手动连接到该网络,则一切正常。因此,我尝试了两种解决方案: 1) 如果我们删除此线路RemoveCapability(NetCapability.Internet),则wifi连接成功,但Internet不工作。 2) 如果我们添加AddCapability(

我在Xamarin android平台上工作,在android 10更新后,“通过代码自动连接到wifi”已停止。因此,在使用android 10后,wifi通过请求的代码成功工作,我的问题是wifi连接互联网在我的手机上无法工作。如果我们手动连接到该网络,则一切正常。因此,我尝试了两种解决方案:

1) 如果我们删除此线路RemoveCapability(NetCapability.Internet),则wifi连接成功,但Internet不工作。
2) 如果我们添加AddCapability(NetCapability.Internet)选项,则不会出现请求弹出窗口,也不会连接wifi

所以请调查一下

1)我想使用xamarin通过android 10中的代码连接到wifi。
2) 我已经完成的部分是wifi连接完成。
3) 我遇到的问题是连接后internet无法工作。

如果我手动连接到wifi,则互联网工作正常

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;
                }
试试看
{
var connectivityManager=Android.App.Application.Context.GetSystemService(Context.ConnectivityService)作为connectivityManager;
WifiManager=(WifiManager)Android.App.Application.Context.GetSystemService(Context.WifiService);
如果(!wifiManager.IsWifiEnabled)
{
Forms.Context.StartActivity(新意图(Android.Provider.Settings.ActionWifiSettings));
返回false;
}
var callback=新网络回调(ConnectionManager)
{
网络可用=网络=>
{
控制台。写入线(“连接”);
MessagingCenter.Send(“ConnectModel”,“connecttowifi”,true);
},
网络不可用=()=>
{
控制台。写入线(“未连接”);
MessagingCenter.Send(“ConnectModel”、“connecttowifi”、false);
}
};
变量说明符=新的wifinetworksspecifier.Builder()
.SetSsid(ssid)
.SetWpa2Passphrase(密码)
.Build();
var request=new NetworkRequest.Builder()
.AddTransportType(TransportType.Wifi)
//.AddCapability(NetCapability.Internet)
//.RemoveCapability(NetCapability.Internet)
.SetNetworkSpecifier(说明符)
.Build();
RequestNetwork(请求,回调);
返回true;
}
捕获(例外e)
{
控制台。写入(e.Message);
返回false;
}

你能告诉我们你做了什么,你想做什么,并希望给我们展示一些代码1)我想通过使用xamarin的android 10中的代码连接到wifi。2) 通过代码连接到wifi部分已成功完成3),但问题是,连接到wifi后,无法连接到internet工作代码附在上面。