¿Cómo mide Android el estado de conectividad? [duplicar]

Sé que Android tiene algún tipo de medición de conectividad, porque cuando hay conectividad, los íconos de la red wifi o del teléfono se vuelven verdes o azules, según la versión de Android.

En mi opinión, esta medida no es perfecta, ya que si bien indicará con precisión la ausencia de conectividad (por ejemplo, pérdida de conectividad wifi), no es tan precisa cuando el teléfono está conectado a Internet: en el trabajo, mi Defy con Cyanogen 9 (Android 4.0.4) tiene íconos que siempre son grises, pase lo que pase, incluso cuando la conexión obviamente está activa (vea la imagen a continuación).

Me pregunto cómo, exactamente, mide Android el estado de conectividad . ¿Es mediante la realización de un ping u otro tipo de sondeo de un servidor? ¿Escuchando un puerto? ¿Probando si algún protocolo está habilitado? ¿O que? Esta respuesta aceptada a una pregunta estrechamente relacionada no parece responderla.

captura de pantalla

No estoy seguro de entender cómo su situación es diferente a las otras preguntas. La segunda pregunta en particular describe exactamente los mismos síntomas. Internet funciona, pero los íconos son grises porque el color del ícono es solo una indicación de su conexión a los servicios de Google, nada más. Es posible que la red de su oficina esté restringiendo de alguna manera su acceso a los servicios de Google, pero no a Internet en general. Sin embargo, probablemente necesitaríamos más información para tomar esa determinación.
@eldarerathis La respuesta aceptada dice "el teléfono está conectado a los servicios de Google", pero no significa nada para mí. ¿Hay un servidor específico que contancs? ¿Un protocolo específico? ¿Puerto? ¿Qué?
Ahora he reescrito completamente mi pregunta. Creo que ahora está más claro y, con suerte, no se cerrará como un duplicado.
Como ahora es una pregunta completamente diferente, todos deberíamos eliminar nuestros comentarios, respuestas, votos, lo que sea. Desafortunadamente, al menos para los dos últimos elementos, eso no es tan fácil; así que tal vez la próxima vez considere comenzar de nuevo con una nueva pregunta y elimine la anterior. Cambiar una pregunta tan drásticamente cuando ya hay respuestas puede hacer que los respondedores (y los comentaristas) se vean estúpidos;)
Consulte también ¿Cómo hago para que Android considere mi punto de acceso WiFi como válido (¿azul?) que menciona la apertura del puerto tcp-udp 5228. O ¿ Qué versiones de Android tienen detección wifi cautiva? que tiene enlaces a parte del código
@GAThrawn: ¡Increíble! Eso está muy cerca de lo que quería, especialmente el primer enlace. Gracias por incluir incluso la detección de portal cautivo, yendo más allá de la pregunta original. Si lo elaboras un poco más y lo conviertes en una respuesta, ¡lo aceptaré!
Nota: A partir de Android 4.4 (al menos en la versión sin modificar) los íconos siempre serán blancos. Debe abrir el menú desplegable de configuración para ver si tiene una "buena" conexión.

Respuestas (1)

Toda la información al respecto es bastante vaga. Probablemente porque no quieren que la gente ataque un servidor de Google en particular.

Por ejemplo, el manual del propietario del Samsung Galaxy Tab 10.1 dice lo siguiente:

Nota: los íconos de estado de la red se vuelven azules si tiene una cuenta de Google agregada a su tableta y la tableta está conectada a los servicios de Google para sincronizar su Gmail, eventos de Calendario, contactos, hacer una copia de seguridad de su configuración, etc. Si no tiene una cuenta de Google o si, por ejemplo, está conectado a una red Wi-Fi que no está conectada a Internet, los íconos de red son grises.

Me pregunto si es posible usar la captura de paquetes móviles para identificarlo mejor.