Compruebe la conexión a Internet en ANDROID

Hola Tengo una aplicación basada en datos recuperados por Internet …

¿Cómo puedo manejar mi aplicación en caso de que no haya conexión disponible?

Puedo detectar la conexión con

ConnectivityManager cm = (ConnectivityManager) getSystemService(this.CONNECTIVITY_SERVICE); return cm.getActiveNetworkInfo().isConnectedOrConnecting(); 

Funciona muy bien … ¿Pero cómo puedo prevenir Force Erros cuando sé que no hay conexión? Me gustaría que se mostrara un mensaje como: "¡Lo sentimos, no hay conexión a Internet disponible!" Y no mi aplicación para aplastar …

  /** * Checks if the device has Internet connection. * * @return <code>true</code> if the phone is connected to the Internet. */ public static boolean hasConnection() { ConnectivityManager cm = (ConnectivityManager) MbridgeApp.getContext().getSystemService( Context.CONNECTIVITY_SERVICE); NetworkInfo wifiNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (wifiNetwork != null && wifiNetwork.isConnected()) { return true; } NetworkInfo mobileNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (mobileNetwork != null && mobileNetwork.isConnected()) { return true; } NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); if (activeNetwork != null && activeNetwork.isConnected()) { return true; } return false; } 

GetActiveNetworkInfo () puede devolver null, por lo que obtendrá una fuerza de cierre, pero usted puede hacer eso:

 ConnectivityManager cm = (ConnectivityManager) getSystemService(this.CONNECTIVITY_SERVICE); NetworkInfo ni = cm.getActiveNetworkInfo(); if (null == ni) return false; return ni.isConnectedOrConnecting(); 

Entonces el cheque es simple:

 if (networkAvailable()) // << your method from above { // Do stuff } else { Toast.makeToast(yourcontext, "No network available", Toast.LENGTH_LONG).show(); } 

No puedo hacer comentarios, pero tenga en cuenta que NetworkInfo.isConnectedOrConnecting(); En todas las respuestas anteriores solo le dirá si está conectado al enrutador o no, pero si está conectado al enrutador que no tiene acceso a Internet, su aplicación se bloqueará, ya que a través de UnknownHostException.
Debe agregar el siguiente retén adjunto a su captura de prueba

 catch (UnknownHostException e) { getRequest.abort(); Log.w("unknownhostexception whicle connects to the host " + url, e); } 

O hacer tiempo de espera para su solicitud lo que quieras.

Para ello, debe tener el siguiente permiso en su manifiesto.

 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
 private boolean connectionAvailable() { boolean connected = false; ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) { //we are connected to a network connected = true; } return connected; } 
 ConnectivityManager conMgr = ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = conMgr.getActiveNetworkInfo(); if(info != null && info.isConnected()) { // internet is there. } else { // internet is not there. } 
  • Android DefaultHTTPConnection con Keep-Alive no reutiliza la conexión TCP
  • Bluetooth seguro vs. inseguro
  • Connectify detiene la conexión a Internet después de algún tiempo
  • Comprobación de la conexión a Internet en android
  • Android SDK Manager no se actualizará: se ha rechazado la conexión a https://dl-ssl.google.com
  • ¿Hay alguna manera de comprobar si el tethering está activo?
  • ¿Error al enviar archivos a través de bluetooth en android?
  • El conector Bluetooth de Android se bloquea
  • Excepción HTTPS de Android Restablecimiento de la conexión por pares
  • Cómo saber la conexión a Internet actual ejecutar en el dispositivo?
  • ¿Cuándo cerrar la conexión db en android? Cada vez que finaliza tu operación o después de salir de la aplicación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.