Sospecho que este escenario es causado por falta de conectividad a internet con respecto al punto de acceso wi-fi. En otras palabras, el dispositivo está correctamente conectado a la conexión Wi-Fi pero la conectividad a internet podría estar caída debido a uno o varios casos.
Este problema puede atribuirse a uno o más problemas:
-
Problema de resolución DNS con tu proveedor de servicios de internet (ISP) o router.
- Podría significar que la ruta a tus direcciones/servidores DNS es inaccesible en el momento dado, por lo que el problema está en tu proveedor de servicios y no en tu teléfono.
-
Configuración incorrecta de DHCP/DNS
- Esto suele resultar en que el servidor DNS no responda a intentos de conexión. Además, una configuración defectuosa de DHCP puede causar que el dispositivo tenga dificultades para obtener una dirección IP asignada por el servidor DHCP.
-
Problemas al conectar con los servidores de Google (servidor de portal cautivo)
Android intenta alcanzar un archivo llamado generate_204
en uno de los servidores de Google y si no hay una respuesta positiva, significa que no hay conexión a internet, y se genera una notificación
También resaltado en la discusión anterior, la URL de detección difiere entre diferentes versiones de Android.
Posibles soluciones:
-
Cambiar la dirección DNS del router/módem
- Verifica la configuración DNS tanto de tu router como de tu teléfono. Intenta configurar manualmente los servidores DNS a los servidores DNS públicos de Google
8.8.8.8
y/o 8.8.4.4
.
- Reiniciar el dispositivo (con la tarjeta SIM retirada)
Puedes intentar reiniciar el dispositivo con un procedimiento similar al "arranque limpio" en PCs siguiendo el siguiente procedimiento:
- Saltar la verificación wi-fi durante la inicialización (creación de nuevo usuario).
Un usuario pudo saltar este problema, creando un nuevo usuario para saltar la verificación de conectividad durante la inicialización. Aquí está su procedimiento:
Los siguientes métodos requieren acceso root:
-
Cambiar el servidor de portal cautivo
-
Instala una aplicación de terminal o ejecuta estos comandos a través de adb shell
.
-
Abre la aplicación de terminal y ejecuta su
.
-
Ejecuta settings get global captive_portal_server
. Esto mostrará el servidor de portal cautivo actual. Una respuesta "null" suele ser la configuración predeterminada.
-
Ejecuta settings put global captive_portal_server TU_DIRECCIÓN_DEL_SERVIDOR
. Puedes agregar google.com como el servidor de portal cautivo, es decir settings put global captive_portal_server google.com
.
-
Ejecuta exit
una vez para salir de su, luego sal una vez más para cerrar el terminal.
-
Reinicia el dispositivo Android. No funcionará sin un reinicio.
- Desactivar portal cautivo
- Dado que el culpable es un método
isCaptivePortal()
que accede a clients3.google.com/generate_204
para probar si la conexión se considera "utilizable". La página, como su nombre sugiere, está diseñada para siempre devolver un código de estado HTTP 204
. Basándote en esto tienes un par de opciones:
i. Desactivar completamente isCaptivePortal()
- con adb configurado, ejecuta
adb shell su -c "settings put global captive_portal_detection_enabled 0"
Nota: El inconveniente es que isCaptivePortal() en realidad es útil para detectar, por ejemplo, cuando una red Wi-Fi requiere inicio de sesión. Si la solicitud a la página 204 se redirige a una página de inicio de sesión (no un 204), el sistema entenderá y mostrará la marca de exclamación según lo previsto.
ii. Cambiar el objetivo de isCaptivePortal()
-
otra solución es reemplazar el host de Google con un host accesible dentro de la región específica. Este host también debería devolver 204
cada vez que se accede a /generate_204
.
es decir adb shell su -c "settings put global captive_portal_server {host_alternativo} "
Otros métodos
Usar hosts
- Puedes editar el archivo
hosts
para bloquear la URL de detección de portal cautivo, evitando así el envío de las solicitudes al servidor de portal cautivo.
Referencias y agradecimientos
0 votos
Creo que wifi con un signo de interrogación significa que el wifi está disponible y dentro del rango, pero no está conectado. ¿Pueden otros dispositivos conectarse a este AP? Intenta reiniciar tu AP. También intenta eliminar y reconfigurar la conexión.