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
Vous devez vous connecter pour publier un commentaire.
Il ne fonctionne pour moi:
Pour vérifier la disponibilité du réseau:
Pour vérifier l'accès à internet:
J'utilise ceci:
Il vient d'un autre stackoverflow réponse, mais je ne le trouve pas.
EDIT:
Finalement j'ai trouvé: https://stackoverflow.com/a/1565243/2198638
Voici quelques modernes code qui utilise un
AsynTask
pour contourner un problème où les android se bloque lorsque vous tentez de vous connecter sur le thread principal et introduit une alerte avec un rincez et répétez l'option pour l'utilisateur....
Pour vérifier si l'appareil android est d'avoir une connexion active, j'utilise ce hasActiveInternetConnection() la méthode ci-dessous (1) tente de détecter si le réseau est disponible et (2) puis connectez-vous à google.com pour déterminer si le réseau est actif.
Requête d'un site comme celui-ci:
Faire de votre classe en œuvre
AsyncTaskCompleteListenere<Boolean>
en ajoutant la méthode suivante à la classe:Ajouter un simple
testConnection
méthode de votre classe à appeler lorsque vous voulez vérifier votre connectivité:Et enfin la
URLExistAsyncTask
classe qui effectuer le test de connectivité comme un asynchrone (arrière-plan) de la tâche et des appels de votreonTaskComplete
méthode une fois fait:J'ai fait d'utiliser cette méthode. Il a travaillé pour moi! Pour les personnes qui veulent obtenir de l'Internet réel!
Pour faire cette méthode à chaque fois! Il suffit d'utiliser un récepteur
et
=>
Cela signifie que l'Internet est connecté!