747 Stimmen

Erkennen, ob eine Internetverbindung auf Android verfügbar ist

Mögliches Duplikat:
Wie kann man den Internetzugang unter Android überprüfen? InetAddress schaltet nie ab

Ich muss erkennen, ob das Android-Gerät mit dem Internet verbunden ist.

El NetworkInfo Klasse bietet eine nicht-statische Methode isAvailable() Das klingt perfekt.

Das ist das Problem:

NetworkInfo ni = new NetworkInfo();
if (!ni.isAvailable()) {
    // do something
}

löst diesen Fehler aus:

The constructor NetworkInfo is not visible.

Sicher ist, dass es eine andere Klasse gibt, die eine NetworkInfo Objekt. Aber ich weiß nicht, welches.

  1. Wie funktioniert der obige Codeschnipsel?
  2. Wie hätte ich die Informationen, die ich brauchte, in der Online-Dokumentation finden können?
  3. Können Sie einen besseren Weg für diese Art der Erkennung vorschlagen?

6 Stimmen

[Dies][1] könnte ebenfalls hilfreich sein [1]: stackoverflow.com/questions/6179906/

2 Stimmen

2 Stimmen

Keine der Antworten hier beantwortet tatsächlich die Frage, ob eine Verbindung zum Internet besteht, sondern nur, ob Sie überhaupt mit einem Netzwerk verbunden sind. In dieser Antwort finden Sie ein Beispiel für den Versuch, eine ausgehende TCP-Verbindung herzustellen, um dies zu testen: stackoverflow.com/a/35647792/1820510

10voto

Dan Punkte 15596

Wahrscheinlich habe ich mich selbst gefunden:

ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
return connectivityManager.getActiveNetworkInfo().isConnectedOrConnecting();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X