C# Xamarin essentials android-连接

C# Xamarin essentials android-连接,c#,xamarin,C#,Xamarin,我正在使用XamarinEssential连接,在运行任何http调用之前,我有以下代码 if(Connectivity.NetworkAccess == NetworkAccess.Internet || Connectivity.NetworkAccess == NetworkAccess.ConstrainedInternet) { // you can make httpcall } else { //no connectivity } 在打电话之前,我禁用了Andr

我正在使用
XamarinEssential
连接,在运行任何http调用之前,我有以下代码

if(Connectivity.NetworkAccess == NetworkAccess.Internet 
|| Connectivity.NetworkAccess == NetworkAccess.ConstrainedInternet)
{
    // you can make httpcall
}
else
{
    //no connectivity
}
在打电话之前,我禁用了Android手机上的wifi并继续,但它仍然说我有互联网,而实际上我没有

我能让它工作的唯一方法是,如果我做到以下几点:

var profiles = Connectivity.Profiles.ToList(); 
if(Connectivity.NetworkAccess == NetworkAccess.Internet 
||Connectivity.NetworkAccess == NetworkAccess.ConstrainedInternet
|| profiles.Contains(ConnectionProfile.WiFi))
{
}
else
{
    //no connectivity
}
以上是检查连接的正确方法吗

它似乎不像我预期的那样起作用


非常感谢

您也关闭了手机数据吗?不,我只是禁用了wifi。这还不够吗?而且我上面的支票似乎也收到了。但不确定wifi是否已关闭,但蜂窝数据已启用,则
Connectivity.NetworkAccess==NetworkAccess.Internet
语句允许代码进行http呼叫,因为您确实可以访问Internet。如果您只希望在使用wifi时发出数据请求,请仅进行检查。好,让我总结一下networkaccess。internet=移动数据已打开。Connectionprofile.wifi=wifi打开(如果包含在配置文件中)。因此,按顺序检查两者是有意义的否?如果您希望在您具有任何类型的internet访问时进行http调用,那么这就是您必须检查的全部内容,并且您已经完成了,否则,如果您希望仅在设备具有wifi时才对其进行限制,则只需进行检查。