У меня есть код, чтобы определить, есть ли сетевое подключение или нет:
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected())
{
// There is an internet connection
}
Но если есть подключение к сети и нет интернета, это бесполезно. Мне нужно пропинговать веб-сайт и дождаться ответа или тайм-аута, чтобы определить подключение к Интернету:
URL sourceUrl;
try {
sourceUrl = new URL("http://www.google.com");
URLConnection Connection = sourceUrl.openConnection();
Connection.setConnectTimeout(500);
Connection.connect();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
// no Internet
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
// no Internet
}
Но это медленное обнаружение. Я должен научиться хорошему и быстрому способу его обнаружения.
Заранее спасибо.