Android Volley – Comprobación del estado de Internet

Antes de usar Volley, así como de costumbre, utilicé AsyncTask para comprobar mi estado de Internet.

Esto es lo que hice en AsyncTask:

private class NetCheck extends AsyncTask<String, Void, Boolean> { @Override protected Boolean doInBackground(String... args) { // get Internet status return cd.isConnectingToInternet(); } protected void onPostExecute(Boolean th) { if (th == true) { new LoadCategories().execute(); } else { Toast.makeText(CategoryActivity.this, "Unable to connect to server", Toast.LENGTH_LONG).show(); } } } 

Y esto es isConnectingToInternet función:

 public boolean isConnectingToInternet() { ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity != null) { NetworkInfo info = connectivity.getActiveNetworkInfo(); if (info != null && info.isConnected()) try { URL url = new URL("http://www.google.com"); HttpURLConnection urlc = (HttpURLConnection) url .openConnection(); urlc.setConnectTimeout(3000); urlc.connect(); if (urlc.getResponseCode() == 200) { return true; } } catch (MalformedURLException e1) { e1.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } return false; } 

¿Cómo logro esto usando Volley?

No hay error de conexión que se lanzan para la solicitud. Por favor, coger el error en

  @Override public void onErrorResponse(VolleyError volleyError) { String message = null; if (volleyError instanceof NetworkError) { message = "Cannot connect to Internet...Please check your connection!"; } else if (volleyError instanceof ServerError) { message = "The server could not be found. Please try again after some time!!"; } else if (volleyError instanceof AuthFailureError) { message = "Cannot connect to Internet...Please check your connection!"; } else if (volleyError instanceof ParseError) { message = "Parsing error! Please try again after some time!!"; } else if (volleyError instanceof NoConnectionError) { message = "Cannot connect to Internet...Please check your connection!"; } else if (volleyError instanceof TimeoutError) { message = "Connection TimeOut! Please check your internet connection."; } } 

Utilizo código debajo para detectar qué error está ocurriendo:

  new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { if (error instanceof TimeoutError || error instanceof NoConnectionError) { Toast.makeText(getApplicationContext(), "Communication Error!", Toast.LENGTH_SHORT).show(); } else if (error instanceof AuthFailureError) { Toast.makeText(getApplicationContext(), "Authentication Error!", Toast.LENGTH_SHORT).show(); } else if (error instanceof ServerError) { Toast.makeText(getApplicationContext(), "Server Side Error!", Toast.LENGTH_SHORT).show(); } else if (error instanceof NetworkError) { Toast.makeText(getApplicationContext(), "Network Error!", Toast.LENGTH_SHORT).show(); } else if (error instanceof ParseError) { Toast.makeText(getApplicationContext(), "Parse Error!", Toast.LENGTH_SHORT).show(); } } }); 

Utilice este código para comprobar el estado de Internet:

 public class Internet { private Context context; public Internet(Context context) { this.context = context; } public Boolean Check() { ConnectivityManager cn = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo nf = cn.getActiveNetworkInfo(); if (nf != null && nf.isConnected() == true) { return true; } else { Toast.makeText(context, "No internet connection.!", Toast.LENGTH_LONG).show(); return false; } } } 
  • Las transacciones en la base de datos no funcionan en android
  • Android Intent Context Confusing
  • Cómo obtener el modo de permiso de archivo mediante programación en Java
  • ¿Cómo desinstalar completamente el SDK de tejido de Twitter del proyecto android?
  • error com.android.volley.NoConnection aleatorio, java.io.InterruptedIOException, statuscode = 0
  • La vista personalizada de Android vuelve a la posición original al actualizar
  • Descargar la carátula del álbum de Internet en una aplicación Android
  • Cómo crear un diseño de Android de cuatro dígitos
  • Cómo iniciar correctamente la actividad desde la vista personalizada (Java Class)?
  • HashMap Eliminar no funciona
  • Java wrapper para la biblioteca Soundtouch
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.