Je soupçonne que ce scénario est causé par un manque de connectivité internet par rapport au point d'accès Wi-Fi. En d'autres termes, l'appareil est correctement connecté à la connexion Wi-Fi mais la connectivité internet pourrait être interrompue en raison d'un ou de quelques cas.
Ce problème peut être attribué à un ou plusieurs problèmes :
-
Problème de résolution DNS avec votre fournisseur de services Internet (FSI) ou routeur.
- Cela pourrait signifier que la route vers vos adresses/serveurs DNS est inaccessible à l'instant donné, donc le problème vient de votre fournisseur de services et non de votre téléphone.
-
Paramètres DHCP/DNS mal configurés
- Cela se traduit normalement par le serveur DNS ne répondant pas aux tentatives de connexion. De plus, des paramètres DCHP défectueux peuvent causer des difficultés à l'appareil pour obtenir une adresse IP assignée par le serveur DCHP.
-
Problèmes de connexion aux serveurs Google (serveur de portail captif)
Android essaie d'accéder à un fichier nommé generate_204
sur l'un des serveurs Google et s'il n'obtient pas de réponse positive, cela signifie qu'il n'y a pas de connexion à Internet, et une notification est générée
Comme mentionné dans la discussion ci-dessus, l'URL de détection varie selon les versions d'Android.
Solutions possibles :
-
Changer l'adresse DNS du routeur/modem
- Vérifiez les paramètres DNS pour votre routeur et votre téléphone. Essayez de définir manuellement les serveurs DNS sur les serveurs DNS publics de Google
8.8.8.8
et/ou 8.8.4.4
.
- Redémarrer l'appareil (avec carte SIM retirée)
Vous pouvez essayer de redémarrer l'appareil selon une procédure similaire à un "démarrage propre" sur les PC en suivant la procédure suivante :
- Contournement de la vérification Wi-Fi pendant l'initialisation (création d'un nouvel utilisateur).
Un utilisateur a réussi à contourner ce problème en créant un nouvel utilisateur pour éviter la vérification de la connectivité pendant l'initialisation. Voici leur procédure :
- Redémarrez le téléphone et attendez que le Wi-Fi soit connecté
- Allez dans Paramètres et créez un nouvel utilisateur
- Continuez la configuration de l'utilisateur jusqu'à ce que vous voyiez "vérification de la connexion"
- Dès que vous voyez "vérification de la connexion", éteignez votre téléphone
- Rallumez votre téléphone à nouveau
-
Activez le Wi-Fi, et le point d'exclamation devrait disparaître rapidement
Vous pouvez éventuellement supprimer le nouvel utilisateur que vous venez de créer
Les méthodes suivantes nécessitent un accès root :
-
Changer le serveur de portail captif
-
Installez une application terminal ou exécutez ces commandes via le adb shell
alternativement.
-
Ouvrez l'application terminal et exécutez su
.
-
Exécutez settings get global captive_portal_server
. Cela montrera le serveur de portail captif actuel. Une réponse "null" est généralement la valeur par défaut.
-
Exécutez settings put global captive_portal_server VOTRE_ADRESSE_SERVEUR
. Vous pouvez ajouter google.com en tant que serveur de portail captif, c'est-à-dire settings put global captive_portal_server google.com
.
-
Exécutez exit
une fois pour quitter su, puis sortez une nouvelle fois pour fermer le terminal.
-
Redémarrez l'appareil Android. Ne fonctionnera pas sans redémarrage.
- Désactiver le portail captif
- Étant donné que le coupable est une méthode
isCaptivePortal()
qui accède à clients3.google.com/generate_204
pour vérifier si une connexion est considérée comme "utilisable". La page, comme son nom l'indique, est conçue pour toujours retourner un code de statut HTTP 204
. Sur cette base, vous avez quelques options :
i. Désactiver complètement isCaptivePortal()
- avec adb activé, exécutez
adb shell su -c "settings put global captive_portal_detection_enabled 0"
Note : L'inconvénient est que isCaptivePortal() est en fait utile pour détecter par exemple quand un réseau Wi-Fi nécessite une connexion. Si la demande de la page 204 est redirigée vers une page de connexion (pas un 204), le système comprendra et affichera le point d'exclamation comme prévu.
ii. Changer la cible de isCaptivePortal()
-
une autre solution consiste à remplacer l'hôte Google par un hôte accessible dans une région spécifique. Cet hôte devrait également renvoyer 204
chaque fois que /generate_204
est accédé.
c'est-à-dire adb shell su -c "settings put global captive_portal_server {alternate_host} "
Autres méthodes
Utilisation d'hôtes
- Vous pouvez modifier
hosts
pour bloquer l'URL de détection du portail captif, contournant ainsi l'envoi des requêtes au serveur du portail captif.
Références et remerciements
0 votes
Je crois que le wifi suivi d'un point d'interrogation signifie que le wifi est disponible et à portée, mais non connecté. D'autres appareils peuvent-ils se connecter à cet AP? Essayez de redémarrer votre AP. Essayez également de supprimer et de reconfigurer la connexion ?