Vérifier la connexion Internet active Android

Je suis en train d'écrire une partie de mon application qui fera la différence entre un Actif de connexion Wifi et une connexion à internet. Rechercher s'il existe une active la connexion Wifi est assez simple en utilisant le gestionnaire de connexions cependant à chaque fois que j'essaie de tester si je peux me connecter à un site web lorsque le Wifi est connecté, mais il n'y a pas de connexion internet, je me retrouve dans une boucle infinie.
J'ai essayé de pinger google cependant, cela se termine de la même façon:

Process p1 = java.lang.Runtime.getRuntime().exec("ping -c 1 www.google.com");
int returnVal = 5;
try {
    returnVal = p1.waitFor();
} catch (InterruptedException e) {
    e.printStackTrace();
}
boolean reachable = (returnVal==0);
return reachable;

J'ai aussi essayé ce code:

if (InetAddress.getByName("www.xy.com").isReachable(timeout))
{    }
else
{    }

mais je ne pouvais pas obtenir isReachable de travail.

source d'informationauteur user1528944