30 votos

¿Cómo detecta el WiFi en Android si el dispositivo tiene que registrarse o no?

Cuando el dispositivo intenta conectarse a un punto de acceso o a un router, tiene que registrarse en la página del portal cautivo con el mensaje que dice

"Iniciar sesión en la red Wi-Fi".

¿Cómo identifica el punto de acceso/encaminador que se requiere un registro para el dispositivo y cuál es el proceso detrás de él?

35voto

user154138 Puntos 1

La url de detección difiere entre las diferentes versiones de Android.

Para Malvavisco, usa connectivitycheck.gstatic.com/generate_204, comprueba el código aquí AndroidXRef - Marshmallow 6.0.0_r1

Para Kitkat, utiliza clients3.google.com/generate_204 comprueba el código AndroidXRef - KitKat 4.4.4_r1

0 votos

No quería secuestrar la respuesta editándola, así que sólo dejaré un comentario. Me tomó un tiempo para darse cuenta de que la URL de detección activa la notificación si no puede ser alcanzado. Además, necesitaba que mi punto de acceso respondiera a esta petición con algún tipo de contenido - en mi caso devolví un código 200 así como la página índice de mi servidor web cuando se solicita /generate_204. Sin contenido en la respuesta, independientemente del código de retorno, obtendría una notificación de "Wi-Fi no tiene acceso a Internet".

0 votos

@ubomb Parece extraño, ya que http://connectivitycheck.gstatic.com/generate_204 en realidad devuelve un 204 sin contenido, y obviamente funciona. Tal vez sólo se ha omitido el Content-Length: 0 cabezazo.

10voto

leon Puntos 1270

Esta tecnología se llama "Portal cautivo". Hay varias implementaciones. Como sé, Android intenta alcanzar un archivo llamado generate_204 en uno de los servidores de Google y si no es posible, se genera una notificación.

Más lecturas en Wikipedia: Portal_de_captura

0 votos

En realidad, sé sobre el portal cautivo. Pero sé la URL específica para comprobarlo. Quiero saber cómo funciona. No lo que es.

1 votos

¿Qué quieres decir con "cómo funciona"? Android envía una solicitud, y si no hay respuesta positiva, significa que no hay conexión a Internet, y se genera una notificación. Así es como funciona.

0 votos

Que es la URL específica en la que solicita Android. Tengo mención en cuestión.

2voto

TravisJ Puntos 5215

Un portal cautivo se implementa generalmente dirigiendo todo el tráfico a una respuesta HTTP válida (200). Esta respuesta HTTP es la que aparece en el portal cautivo.

Esto se puede hacer con herramientas como iptables o dnsmasq.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X