Android Developer – Controllare se il dispositivo è connesso ad Internet.
Uno snippet di codice per controllare la presenza di una connessione attiva su smartphone. D’obbligo quando si lavora con App che necessitano di una connessione internet per funzionare:
import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; public class InternetConnection { public static boolean haveInternetConnection(Context contesto) { boolean haveConnectedWifi = false; boolean haveConnectedMobile = false; ConnectivityManager cm = (ConnectivityManager) contesto.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo[] netInfo = cm.getAllNetworkInfo(); for (NetworkInfo ni : netInfo) { if (ni.getTypeName().equalsIgnoreCase("WIFI")) if (ni.isConnected()) haveConnectedWifi = true; if (ni.getTypeName().equalsIgnoreCase("MOBILE")) if (ni.isConnected()) haveConnectedMobile = true; } return haveConnectedWifi || haveConnectedMobile; } } |
Questo metodo è pubblico, può essere chiamato da qualsiasi Activity passando come parametro in ingresso il Context. Il metodo restituisce true se è presente una connessione (Dati o Wifi che sia), false altrimenti.
Esempio con l’Activity principale:
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); if (InternetConnection.haveNetworkConnection(MainActivity.this)) Log.i("CONNESSIONE Internet", "Presente!"); else Log.e("CONNESSIONE Internet","Assente!"); } } |
Non dimenticate di aggiungere questi permessi nell’AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
Commenti