Ich habe den folgenden Code ausprobiert, um zu überprüfen, ob mein Handy mit einem drahtlosen Netzwerk verbunden ist und es funktioniert gut, wenn ich wissen möchte, ob mein Handy mit dem Netzwerk verbunden ist, aber es gibt keine Informationen über den Internetzugang wie "Pinging" jede Website. Eigentlich bin ich vielen Links gefolgt, aber immer noch keine Antwort, also werde ich so dankbar sein, wenn jemand helfen kann.Android - Wie überprüft man den Internetzugang, nicht nur die Verbindung zum WLAN?
Vielen Dank im Voraus.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Toast t = new Toast(getApplicationContext());
if (isInternetOn()) {
// INTERNET IS AVAILABLE, DO STUFF..
Toast.makeText(ConnectivityTestActivity.this,"Network is Available", Toast.LENGTH_LONG).show();
}
else {
// NO INTERNET AVAILABLE, DO STUFF..
Toast.makeText(ConnectivityTestActivity.this,"No Network Available", Toast.LENGTH_LONG).show();
}
}
public final boolean isInternetOn() {
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
// ARE WE CONNECTED TO THE NET
if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTING ||
connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING ||
connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) {
// MESSAGE TO SCREEN FOR TESTING (IF REQ)
//Toast.makeText(this, connectionType + ” connected”, Toast.LENGTH_SHORT).show();
return true;
} else if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED || connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED ) {
return false;
}
return false;
}}
EDIT:
Folgen untenstehenden Link für Ping Google-Server eine große Antwort enthält und
https://stackoverflow.com/a/16458623/1239911
Nur ein Hinweis ... verwenden ich den obigen Code von einer anderen Frage hier in stackoverflow.com, können wir 'ConnectivityManager.Type_WIFI' oder 'ConnectivityManager.Type_Mobile' anstelle von 0 & 1 in der GetNetworkInfo() verwenden, – Amt87
Warum hast du überhaupt den 'else if' Teil gebraucht? Wenn wir nicht verbunden sind, bedeutet das, dass wir getrennt sind. Kannst du mich bitte wissen lassen, ob dieser "else if" -Teil benutzt wird? –
Es könnte VERBUNDEN, DISKONNECTED, CONNECTING, DISCONNECTING, SUSPENDED und UNBEKANNT sein. Sie können diese Zustände in developer.android.com überprüfen oder wenn Sie in Ihrem Code nach ctrl + space nach (NetworkInfo.State.) Klicken. Ich wünschte, das könnte hilfreich sein. – Amt87