Sto scrivendo un programma in cui ho bisogno di controllare tre stati: 1. Se non ho WiFi, 2. se ho WiFi ma nessuna connessione internet (come se accendo il mio router, ma scollegare il cavo Ethernet), e 3. se ho WiFi e connessione internet. Poi cambierei il colore di un'icona nella mia app per rappresentare uno di questi stati (rosso, giallo o verde). Attualmente la condizione 2 non funziona, ogni volta che scollego il cavo sul mio router per il test, il colore dell'icona cambia da verde a rosso.Android Controllare se c'è WiFi ma non internet
public static void doPing(Context context) {
String googleUrl = "https://www.google.com";
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
try {
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, TIMEOUT_CONNECTION);
HttpConnectionParams.setSoTimeout(httpParameters, TIMEOUT_SOCKET);
HttpClient client = new DefaultHttpClient(httpParameters);
if (L) Log.i(TAG, "Calling: " + url);
HttpGet getGoogle = getHttpGet(googleUrl);
HttpResponse responseGoogle = client.execute(getGoogle);
if (responseGoogle != null){
connectionIconView.setIcon(R.drawable.green_wifi);
}
else if (cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI) != null){
connectionIconView.setIcon(R.drawable.yellow_wifi);
}
else {
connectionIconView.setIcon(R.drawable.red_wifi);
}
} catch(Exception e) {
if (L) Log.e(TAG, "Error during HTTP call");
e.printStackTrace();
}
Sto supponendo che tu intenda davvero "Se la funzione 1 restituisce true e la funzione 2 restituisce false -> cambia colore in GIALLO ". Grazie mille! Controllerò per vedere se funziona –
Oh sì! Ho perso la parte gialla. : D – Rohit5k2
durante la chiamata a google page, la pagina bianca viene visualizzata per millisecondi .Come risolverlo – Ajay