Xamarin INetAddress.GetByName всегда выдает исключение
Я пытаюсь получить INetAddress с помощью следующего кода:
try
{
var address = InetAddress.GetByName ("google.com");
System.Diagnostics.Debug.WriteLine (address);
}
catch (Java.Net.UnknownHostException)
{
System.Diagnostics.Debug.WriteLine ("not working");
}
Но он всегда печатает "не работает". Я проверил, и мое интернет-соединение в порядке. Я не знаю, почему это происходит. Заранее спасибо.
1 ответ
Я мог бы решить это с помощью AsyncTask
,
вот моя реализация
public class ConnectionCheckAsyncTask : AsyncTask
{
private bool isInternetReachable()
{
try
{
var address = InetAddress.GetByName("google.com");
}
catch (Exception e)
{
return false;
}
return true;
}
protected override Object DoInBackground(params Object[] @params)
{
var res = isInternetReachable();
return res;
}
}
чтобы получить результат, нужно сделать следующее
var task = new ConnectionCheckAsyncTask();
task.Execute();
var isReacheble = (bool)await task.GetAsync();
Еще одна возможность проверить подключение к Интернету. Все, что вам нужно, это изменить isInternetReachable
в ConnectionCheckAsyncTask
со следующим кодом
private bool isInternetReachable()
{
try
{
URL url = new URL("http://www.google.com");
HttpURLConnection urlConnect = (HttpURLConnection)url.OpenConnection();
Object objData = urlConnect.GetContent(new Class[0]);
}
catch (Exception e)
{
return false;
}
return true;
}