Ho provato il codice seguente per verificare se il mio cellulare è connesso a una rete wireless e funziona bene quando voglio sapere se il mio cellulare è connesso alla rete, ma non riesce a fornire informazioni sull'accesso ad internet ... qualcosa come "fare il ping" di qualsiasi sito web. In realtà ho seguito molti link ma ancora nessuna risposta, quindi sarò così grato se qualcuno può aiutare.Android - Come verificare l'accesso a Internet, non solo la connettività al wifi?
Grazie in anticipo.
@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:
Segui collegamento sotto contiene una grande risposta per il server Ping google e ottenere il risultato
https://stackoverflow.com/a/16458623/1239911
Solo una nota ... Ho usato il codice di cui sopra da un'altra domanda qui in stackoverflow.com, possiamo usare 'ConnectivityManager.Type_WIFI' o 'ConnectivityManager.Type_Mobile' invece di 0 e 1 nel getNetworkInfo() – Amt87
Perché hai persino bisogno della parte "else if'? Se non siamo collegati significa che siamo disconnessi. Potete per favore farmi sapere se c'è qualche uso di questa parte 'else if'? –
Potrebbe essere COLLEGATO, DISCONNESSO, COLLEGAMENTO, DISCONNESSIONE, SOSPESA e SCONOSCIUTA. Puoi controllare questi stati in developer.android.com o quando fai clic su ctrl + spazio dopo (NetworkInfo.State.) Nel tuo codice. Spero che questo possa essere utile. – Amt87