Pregunta

He incorporado la muestra de Accesibilidad de Apple en mi propio proyecto para saber si tengo o no una conexión de red; si no tengo una conexión de red, no me molesto en enviar y solicitar. Decidí seguir con la implementación de notificación de estado porque parecía más fácil actualizar la accesibilidad en segundo plano y tener los resultados actuales disponibles de inmediato en lugar de iniciar una solicitud sincrónica cada vez que quiero hacer una conexión de red.

Mi problema es que empiezo a recibir falsos negativos cuando estoy en una red EDGE: el teléfono tiene conectividad, pero la aplicación cree que este no es el caso. Tengo entendido que no recibe una notificación cuando se realiza una conexión EDGE, por lo que supongo que perdí y recuperé la conexión en algún momento. Reiniciar la aplicación suele ser suficiente para ver la conexión de red.

Esta no es una solución óptima, por lo que me preguntaba si alguien más se encontró con este problema y tuvo alguna idea sobre una solución.

(No sé si esto también se aplica a 3G; estoy ejecutando un iPhone de primera generación).

¿Fue útil?

Solución

Las notificaciones de accesibilidad tampoco me parecieron confiables para detectar Wi-Fi. Así que solo uso encuestas en su lugar. Verificar cada 5 segundos parece no hacer daño.

- (void) checkReachability {
    BOOL connected = ([[Reachability sharedReachability] localWiFiConnectionStatus] == ReachableViaWiFiNetwork);

    // Do something...

    [self performSelector:@selector(checkReachability) withObject:nil afterDelay:5.0];
}

Otros consejos

Hay un buen ejemplo de accesibilidad en la red. funciona maravillosamente bien: http://servin.com/iphone/iPhone-Network-Status.html

Pero ya ves, cuando trato de usarlo a mi manera, solo bombardea.

Intenté implementarlo usando:

NSString *sCellNetwork;     
 NSString *sNetworkReachable;  

if (flags & kSCNetworkFlagsReachable || flags & kSCNetworkReachabilityFlagsIsWWAN)

{do it} 

 else {
   Network fail alert; 
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top