Essendo android un sistema operativo pensato con un’ ottica cloud è normale che molte delle applicazioni sviluppate per questa piattaforma si interfaccino con risorse online.
Molte volte viene dato per assunto, durante la programmazione, che il terminale sia collegato alla rete internet e ciò è sbagliato.
Perciò è buona norma controllare, prima di effettuare qualsiasi operazione online, che il terminale sia collegato alla rete internet. Per coprire il 99% delle casistiche di non-connettività è sufficiente utilizzare il componente ConnectivityManager di Android.
Qui sotto uno snippet di codice che mostra come utilizzare ConnectivityManager per conoscere in tempo reale che tipo di connessione sta utilizzando il terminale.
/**
* Controlla se il terminale è connesso in wifi
* @param cm Context.getSystemService(Context.CONNECTIVITY_SERVICE)
* @return
*/
public static boolean isConnectedWifi(ConnectivityManager cm) {
NetworkInfo ni= cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return ni.isConnected();
}
/**
* Controlla se il terminale è connesso in 3G
* @param cm Context.getSystemService(Context.CONNECTIVITY_SERVICE)
* @return
*/
public static boolean isConnected3G(ConnectivityManager cm) {
NetworkInfo ni= cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
return ni.isConnected();
}
/**
* Controlla la connessione o meno del terminale alla rete internet.
* @param cm Context.getSystemService(Context.CONNECTIVITY_SERVICE)
* @return true se connesso, false altrimenti
*/
public static boolean isConnected(ConnectivityManager cm) {
return isConnectedWifi(cm) || isConnected3G(cm);
}
Pingback: Le 3 risorse d’oro in sistemi mobile | DroidTech