2011-03-21 15 views

Respuesta

8

Aquí está el fragmento de código. Devuelve cierto si permiten a la red, y false en

private boolean netCheckin() { 
    try { 
     ConnectivityManager nInfo = (ConnectivityManager) getSystemService(
      Context.CONNECTIVITY_SERVICE); 
     nInfo.getActiveNetworkInfo().isConnectedOrConnecting(); 
     Log.d(tag, "Net avail:" 
      + nInfo.getActiveNetworkInfo().isConnectedOrConnecting()); 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(
      Context.CONNECTIVITY_SERVICE); 
     NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
     if (netInfo != null && netInfo.isConnectedOrConnecting()) { 
      Log.d(tag, "Network available:true"); 
      return true; 
     } else { 
      Log.d(tag, "Network available:false"); 
      return false; 
     } 
    } catch (Exception e) { 
     return false; 
    } 
} 
+1

Editar el código - ¡Tienes 2 vars con el mismo valor! Está llamando 'getActiveNetworkInfo()' AND 'isConnectedOrConnecting()' ¡3 veces! –

+0

El código anterior es correcto. Pero, ¿qué pasa si el móvil está conectado a wifi pero en realidad no se obtienen datos para navegar? En ese momento, cómo encontrarlo. –

+0

hinchado -1 .... –

38

Inténtelo este

public static boolean isInternetConnected (Context ctx) { 
    ConnectivityManager connectivityMgr = (ConnectivityManager) ctx 
      .getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo wifi = connectivityMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
    NetworkInfo mobile = connectivityMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
    // Check if wifi or mobile network is available or not. If any of them is 
    // available or connected then it will return true, otherwise false; 
    if (wifi != null) { 
     if (wifi.isConnected()) { 
      return true; 
     } 
    } 
    if (mobile != null) { 
     if (mobile.isConnected()) { 
      return true; 
     } 
    } 
    return false; 
} 

Por favor, añadir a continuación el permiso en el archivo de manifiesto de Android.

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

+1 para ACCESS_NETWORK_STATE –

+4

+1 para verificación de conexión wifi y móvil :) –

+0

Si SimCard no está disponible en un dispositivo como Tablet, ¿.? –

2

puede utilizar a continuación el código de este funciona para todas las versiones de la API:

ConnectivityManager cm = 
       (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE); 

     NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 
     boolean isConnected = activeNetwork != null && 
           activeNetwork.isConnectedOrConnecting(); 

    if(isConnected) 
    { 
    if(activeNetwork.getType()==ConnectivityManager.TYPE_MOBILE) 
    return true;  

    else 
     return false; 
    } 

    else 
     return false; 
0

estoy usando éste dentro de la clase Actividad

private boolean isConnectedToInternet() 
 
{ 
 
    ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
 
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
 
    return (networkInfo != null); 
 
}

Cuestiones relacionadas