¿Cómo puedo comprobar si un dispositivo Android está conectado a la web?
¿Cómo puedo saber si mi dispositivo está conectado a la web o no? ¿Cómo puedo detectar la conectividad? Cualquier código de ejemplo?
En primer lugar, necesita permiso para saber si el dispositivo está conectado a la Web o no. Esto debe estar en su manifiesto, en el elemento <manifest>
:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
A continuación, necesita obtener una referencia al ConnectivityManager :
ConnectivityManager cm = (ConnectivityManager) Context.getSystemService(Context.CONNECTIVITY_SERVICE);
Desde allí es necesario obtener un objeto NetworkInfo . Para la mayoría, esto significará usar ConnectivityManager. GetActiveNetworkInfo () :
NetworkInfo ni = cm.getActiveNetworkInfo(); if (ni == null) { // There are no active networks. return false; }
A partir de ahí, sólo necesita utilizar uno de los métodos de NetworkInfo para determinar si el dispositivo está conectado a Internet:
boolean isConnected = ni.isConnected();
En primer lugar, necesita permiso para saber si el dispositivo está conectado a la Web o no. Esto debe estar en su manifiesto, en el elemento:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
entonces
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); if (connec != null && ( (connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) || (connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED))) { //You are connected, do something online. } else if (connec != null && ( (connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.DISCONNECTED) || (connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.DISCONNECTED ))) { //Not connected. Toast.makeText(getApplicationContext(), "You must be connected to the internet", Toast.LENGTH_LONG).show(); }
Agregue este permiso en su archivo AppManifest.xml:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
El método para comprobar si la red está disponible o no:
boolean isNetworkAvailable() { ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting(); return isConnected; }
Fuente
http://developer.android.com/reference/android/net/ConnectivityManager.html – CONNECTIVITY_ACTION