Home / Programmazione / Java Android / Controllo connessione in Android
Mattepuffo

Controllo connessione in Android

Controllo connessione in Android

Nelle app mobile che richiedono una connessione attiva, è importante, a mio vede di vedere, effettuare questo controllo prima di fare una qualsiasi richiesta di dati verso il web.

In questo modo, in assenza di connessione, abbiamo subito la risposta e possiamo chiudere subito l'applicazione in attesa di connessione.

Oggi vi posto una semplice classe per il controllo della connessione in Android.

A ben vedere il controllo potrebbe essere più etseso e specifico ma, a meno di esigenze particolari, può andar benissimo anche questo.

Ecco la classe con il metodo:

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class ControlloConnessione {

    public static boolean inOnline(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo ni = cm.getActiveNetworkInfo();
        if (ni == null) {
            return false;
        }
        return ni.isConnected();
    }

}

L'oggetto ConnectivityManager ci permette di conoscere lo stato delle connessioni.

Il metodo getSystemService fa parte della classe Context, e ritorna un handle al servizio richiesto, che gli passiamo come argomento.

NetworkInfo invece descrive lo status di una interfaccia network; per controllare il suo stato usiamo direttamente il metodo isConnetced, che controlla se esiste una connessione ed è possibile usarla per passare dei dati.

Infine ricordatevi che per usare questi oggetti dovete aggiungere un permesso specifico al Manifest:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Ciao!