AimanB AimanB - 2 months ago 17
Java Question

Android Volley - Checking internet state

Before I am using Volley, well as usual, I used AsyncTask to check my internet state.

Here is what I did in 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();
}
}
}


And this is
isConnectingToInternet
function:

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;
}


How do I achieve this using Volley?

UDI UDI
Answer

There is NoConnection Error that get thrown for the Request. Please catch the error in

   @Override
   public void onErrorResponse(VolleyError volleyError) {
   //other catches
   if(volleyError instanceof NoConnectionError) {
   error = "No internet Access, Check your internet connection.";
    }
   }
Comments