Próbowałem poniższy kod, aby sprawdzić, czy mój telefon komórkowy jest podłączony do sieci bezprzewodowej i działa dobrze, gdy chcę wiedzieć, czy mój telefon komórkowy jest podłączony do sieci, ale nie informuje o dostępie do Internetu ... coś jak "Pingowanie" dowolnej witryny. Właściwie śledziłem wiele linków, ale wciąż nie mam odpowiedzi, więc będę wdzięczny, jeśli ktoś może pomóc.Android - Jak sprawdzić dostęp do Internetu, a nie tylko połączenie z Internetem?
Dzięki z góry.
@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:
Obserwuj poniżej linku zawiera wielką odpowiedź na serwerze Ping google i uzyskać wynik
https://stackoverflow.com/a/16458623/1239911
Tylko uwaga ... Kiedyś powyższy kod z innego pytanie tutaj w stackoverflow.com możemy użyć „ConnectivityManager.Type_WIFI” lub „ConnectivityManager.Type_Mobile” zamiast 0 & 1 w getNetworkInfo() – Amt87
Dlaczego potrzebowałeś jeszcze części "else if"? Jeśli nie jesteśmy połączeni, oznacza to, że jesteśmy odłączeni. Czy możesz dać mi znać, jeśli jest jakikolwiek pożytek z tej części "else if"? –
Może być PODŁĄCZONY, ODŁĄCZONY, PODŁĄCZONY, ODŁĄCZONY, PODWIESZANY i NIEZNANY. Możesz sprawdzić te stany w developer.android.com lub po kliknięciu ctrl + spacja po (NetworkInfo.State.) W kodzie. Chciałbym, żeby to było pomocne. – Amt87