2017-06-20 140 views
0

我必须检查我的应用程序中的互联网连接,休耕此answer 我已经添加行到我的清单文件。然而我有一个问题getSystemServiceMethod它没有在我的情况下定义,上下文不包含这种方法。Xamarin检查互联网连接

除了I`ve一直试图做这样的事情:

public static bool isInternetOn() 
{ 
    ConnectivityManager connectivityManager = (ConnectivityManager)Context.ConnectivityService; 
    NetworkInfo networkInfo = connectivityManager.ActiveNetworkInfo; 
    bool isWifi = networkInfo.Type == ConnectivityType.Wifi; // wifi check 
    return networkInfo.IsConnected; 
} 

但它抛出一个异常。我怎样才能解决这个问题,并检查手机是否可以访问互联网。

回答

1
  1. 您可以通过Context作为参数isInternetOn

  • 使用connectivityManager = (ConnectivityManager)(Application.Context.GetSystemService(Context.ConnectivityService));
  • 除上述那些
  • 更好,就应该使用ConnectivityPlugin
  • 你的代码有ab你必须检查networkInfo无效。 它应该是这样的:

    public static bool isInternetOn() 
    { 
        var connectivityManager = (ConnectivityManager)(Application.Context.GetSystemService(Context.ConnectivityService)); 
        NetworkInfo networkInfo = connectivityManager.ActiveNetworkInfo; 
        return networkInfo != null && networkInfo.IsConnected; 
    } 
    

    最后请注意:

    你的实现并不包括所有的情况下,请see。 您应该使用ConnectivityPlugin