iphone - internet - itunes
Forma de descubrir qué tipo de conexión a Internet estoy usando en el iPhone (4)
Actualmente, esta información no está disponible. Si desea esta característica, presente un nuevo error y mencione que este es un duplicado del error 6014806.
Necesito saber qué conexión de internet está disponible cuando mi aplicación se está ejecutando. Revisé el ejemplo de Accesibilidad de Apple, pero esto difiere solo entre wifi y red de operador. Lo que necesito saber es qué red de operador se selecciona, UMTS o EDGE o GPRS.
Puede adivinar en qué tipo de red se encuentra al verificar la latencia de un viaje de ida y vuelta a su servidor. Si obtienes cifras de menos de 100 ms, seguramente estarás conectado a WiFi.
GPRS y EDGE funcionan a alrededor de 600 ms de latencia. UMTS / HSDPA es 100-200ms.
Fuente: mis pruebas informales, y [AT & T] [1] figuras.
En lugar de codificar de forma rígida diferentes versiones de su sitio para 3G, EDGE, GPRS, banda ancha wifi, ¿por qué no crear un marco que detecte la velocidad de conexión y arranque su sitio hasta el nivel de ancho de banda adecuado? De esta forma obtendrás los resultados adecuados en 3G / wifi lento y, naturalmente, se adaptará a la próxima generación de banda ancha inalámbrica (por ejemplo, WiMax y 802.11n) con una cantidad mínima de esfuerzo / interrupción.
Por ejemplo, podría determinar diferentes "puntos de control" de ancho de banda (que pueden corresponder a 3G, EDGE, etc.), entonces podría hacer algo como transferir un poco de datos o almacenar en caché una imagen pequeña (como un ícono) común a todos niveles de ancho de banda, comparar la velocidad de descarga en segundo plano y establecer el nivel de ancho de banda en consecuencia.
Solo archivo
Me gusta la respuesta de Wedge. Sin embargo, no estoy seguro de que el archivo no sea almacenado en caché por los ISP. Siempre puede seguir generando un nuevo nombre de archivo o elegir uno lo suficientemente grande como para que solo pruebe el tiempo suficiente para obtener un resultado.
Latencia simple
La idea de usar la latencia está cerca, pero como Shivan mencionó es incorrecta. Un usuario en Australia y el Reino Unido tendrá una latencia de alrededor de 350 ms frente al usuario local que podría verlo tan bajo como 30-40 ms.
Solución: desviación media
Si haces ping a tu servidor con 3 paquetes y luego observas la desviación media (mdev) en 3G, generalmente es inferior a 50 ms. Con 2G / EDGE es casi siempre más de 100 ms. Obtuve un valor atípico en 65ms a AUS.
Mis pruebas encontraron un rango de 4ms-38ms, con solo una excepción en una prueba a Australia desde Bélgica a 202ms.
Espero que sea útil para alguien ...