¿Cómo determina Android si tiene conexión a Internet?

Mi Nexus 10 (Android 4.4.2, sin rootear) no funciona bien con mi red inalámbrica. Aunque se puede conectar y no tengo problemas para navegar por la web, por alguna razón Android piensa que no tiene conexión a Internet. Como resultado, el ícono de wifi en mi Configuración rápida está atenuado a naranja y, lo que es más importante, las aplicaciones parecen no poder buscar actualizaciones en segundo plano (por ejemplo, no tengo problemas para abrir Gmail y verificar manualmente el correo, pero Gmail ganó no me da notificaciones mientras se ejecuta en segundo plano hasta que esté en una red diferente).

Este problema generalmente solo ocurre en un AP inalámbrico en particular en mi casa, por lo que creo que el problema radica en ese AP y no en el propio Android. Pero no sé cómo determina Android si tiene o no conexión a Internet, así que no puedo hacer mucho para tratar de resolver el problema. Escuché que Android verifica con los servicios de Google para probar la conectividad a Internet, pero dado que de lo contrario no tengo problemas para usar los servicios de Google, no sé cuál podría ser el problema (bueno, la aplicación de YouTube parece tomar un tiempo inusualmente largo para cargar metadatos de video, pero eso podría no estar relacionado).

Entonces, ¿ qué hace exactamente Android para determinar si tiene Internet o no? ¿Qué podría estar causando que esa verificación falle sin afectar nada más? ¡Gracias!

Tenga en cuenta que Android también tiene detección de portal cautivo, lo que puede ser relevante si la conectividad a Internet es irregular o inconsistente. Consulte android.stackexchange.com/questions/123129/…

Respuestas (1)

Cuando el indicador de datos es naranja (en Kit kat; gris en versiones anteriores), significa que el dispositivo no puede recibir una respuesta de GCM (Google Cloud Messaging, el marco que maneja las notificaciones automáticas). Este tráfico se envía a través de los puertos 5228, 5229 y 5230. Si el AP está bloqueando o interfiriendo con el tráfico en esos puertos, las notificaciones automáticas no funcionarán y el indicador de datos será naranja. Las actualizaciones manuales y otro tráfico de Internet seguirán funcionando bien si los puertos utilizados para esas transmisiones (80, 443, etc.) no están bloqueados.

Esa es exactamente la información que estaba buscando, gracias! Resultó que el AP tenía NAT desactivado por algún motivo.
Sí, eso lo hará. Me alegro de que hayas podido encontrar el problema. ¡Salud!