Xamarin检查互联网连接

时间:2017-06-20 08:30:58

标签: android xamarin

我必须在我的应用程序中检查互联网连接,否则answer 我在清单文件中添加了行。但是我遇到getSystemServiceMethod的问题,在我的情况下没有定义,上下文不包含这样的方法。

我也一直试图做这样的事情:

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 个答案:

答案 0 :(得分:4)

  1. 您可以将Context作为isInternetOn
  2. 的参数传递

    1. 使用connectivityManager = (ConnectivityManager)(Application.Context.GetSystemService(Context.ConnectivityService));
      1. 优于上述内容,您应该使用ConnectivityPlugin
      2. 您的代码有错误,您必须检查networkInfo无效。 它应该是这样的:

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

        最终注意:

        您的实施并未涵盖所有情况,请see。 您应该使用ConnectivityPlugin