Internetverbindung prüfen

  • Antworten:3
Philip M.
  • Forum-Beiträge: 90

02.12.2011, 12:56:50 via Website

Guten Morgen,

ich habe hier irgendwann mal einen älteren Post gelesen welcher sich von der Überprüfung des Status der Internetverbindung schreibt. Ich habe folgenden Code bei mir eingesetzt und habe nun hierzu ein paar Fragen.

1public boolean isOnline() {
2 ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
3 NetworkInfo netInfo = cm.getActiveNetworkInfo();
4 if (netInfo != null && netInfo.isConnectedOrConnecting()) {
5 return true;
6 }
7 return false;
8 }

Leider wird aber scheinbar nicht abgefragt ob eine Internetverbindung besteht, sondern nur ob eine Netzwerkverbindung besteht. So wird mir false zurück gegeben wenn ich in keinem Netzwerk bin, aber wenn ich mich z.B. in einem W-LAN befinde was keine Internetverbindung besitzt gibt mir diese Methode so trotzdem true zurück. Wenn ich nach dem Problem Google finde ich nur selbigen Quellcode in einer gering anderen Form aber mit selber Funktion. Mach ich was falsch oder gibt es eine andere Möglichkeit die Internetverbindung zu überprüfen?

Antworten
Rainu
  • Forum-Beiträge: 42

02.12.2011, 13:17:20 via Website

Hallo,

Philip M.
Guten Morgen,
Mach ich was falsch oder gibt es eine andere Möglichkeit die Internetverbindung zu überprüfen?

Ich glaub es ist nicht möglich das "netzwerk" zu fragen ob es eine Internet-Verbindung hat. Du kannst aber folgendes tun: Wenn du weist, dass du in einem Netz bist (also Connectivity = true ist) eine Verbindung zu einem Host aufbauen (java.net.Socket). Entweder bekommst du eine Verbindung oder es wird eine Exception geworfen.

— geändert am 02.12.2011, 13:44:36

Antworten
Jan
  • Forum-Beiträge: 1

16.12.2011, 17:38:09 via Website

ganz einfach denke ich :P

du hast

if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}


und dann einfach return false;

dieses return muss aber in die else sont setzt du ja dein boolean, komme was wolle zum schluss wieder auf false...

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

16.12.2011, 18:04:59 via App

Jan
ganz einfach denke ich :P

du hast

if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}


und dann einfach return false;

dieses return muss aber in die else sont setzt du ja dein boolean, komme was wolle zum schluss wieder auf false...
Klingt gut, ist aber leider anders..
Java bricht mit dem Return die Methode ab..
Lg Ansgar

Antworten