I could solve this by using AsyncTask
.
here is my implementation
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;
}
}
to get result you need to do next
var task = new ConnectionCheckAsyncTask();
task.Execute();
var isReacheble = (bool)await task.GetAsync();
One more option to check inet connection. All you need is change isInternetReachable
in ConnectionCheckAsyncTask
with next code
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;
}