Mam kod, aby sprawdzić, czy istnieje połączenie sieciowe lub nie:wykryć, jeśli nie ma połączenia internetowego
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected())
{
// There is an internet connection
}
Ale jeśli istnieje połączenie sieciowe i brak internetu jest to bezużyteczne. Muszę pingować stronę i czekać na odpowiedź lub czas oczekiwania, aby ustalić połączenie z Internetem:
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
}
Jest to jednak powolne wykrywanie. Powinienem nauczyć się dobrze i szybko to wykryć.
Z góry dziękuję.
Oznacza to, że używasz również WIFI. Czy mam rację??? –
Tak, używam tylko Wi-Fi. –
Więc jaki jest problem? –