Vérifier la présence d'une connexion internet actuelle

J'ai le code suivant dans une application qui permettra de vérifier la présence d'une connexion internet. Il n'travail va dire qu'il n'y est pas d'internet si il n'y a pas (contrairement à l'utilisation, ConnectivityManager qui ne dites-vous si vous êtes connecté à un routeur/3g, mais n'est pas réellement vérifier la présence d'une connexion internet), mais seulement jusqu'à ce que quelqu'un se connecte au wifi spot qui redirige l'utilisateur vers une page de connexion. L'application sera de retour de 200 code et essayer de continuer, mais elle permettra à terme de collision (et crash calme un peu). Mon appli serait principalement utilisé dans un endroit qui a un spot wifi. Comment puis-je vérifier si une demande a été redirigée?

class online extends AsyncTask<String, String, String> 
{
boolean responded = false;
@Override
protected void onPreExecute() 
{
super.onPreExecute();
pDialog2 = new ProgressDialog(Main.this);
pDialog2.setMessage("Checking internet, please wait...");
pDialog2.setIndeterminate(false);
pDialog2.setCancelable(false);
pDialog2.show();
}
protected String doInBackground(String... args) 
{
try
{
URL url = new URL("http://mydomain.com/connectionTest.html");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(6000); //Timeout is in seconds
urlc.setReadTimeout(6000);
urlc.connect();
if (urlc.getResponseCode() == 200) 
{
responded = true;
} else 
{
}
} catch (IOException e)
{
}
try
{
int waited = 0;
while (!responded && (waited < 5000))
{
mHandler.postDelayed(new Runnable() 
{
public void run() 
{
}
}, 100);
waited += 100;
}
}
finally
{
if (!responded)
{
h.sendEmptyMessage(0);
}
else
{
h.sendEmptyMessage(1);
}
}
return null;
}
protected void onPostExecute(String file_url) 
{
pDialog2.dismiss();
}
}
InformationsquelleAutor Howli | 2014-01-13