Detectando si un iPhone ha roaming desde wifi a 3G o viceversa

G'day Guys,

He estado usando la API de accesibilidad con devoluciones de llamada de estado de accesibilidad para determinar si una aplicación está conectada a través de 3G o Wi-Fi. Es una aplicación que actúa como una extensión de voz para una pieza de hardware existente y, como tal, estamos utilizando las API de VoIP para ejecutarse en segundo plano y aceptar llamadas, etc.

¿Hay alguna forma definitiva que no sea usar devoluciones de llamada de estado de accesibilidad para determinar si se puede acceder o no a un punto extremo IP particular? Podría usar un ASIHTTPRequest y luego verificar si se agotó el time de espera, pero eso puede causar problemas potenciales para mí a largo ploop.

No busco una respuesta programática sino más información que otros desarrolladores tendrían sobre cómo administrar un roaming entre los dos en segundo plano si tiene una connection persistente. Básicamente, si el dispositivo viaja a 3G, necesito destruir la session en el dispositivo y si vuelve a Wi-Fi, necesito recrear la session.

Cualquier comentario o consejo sería bienvenido.

Las API de Reachability proporcionarán las notifications de cambio de connection a su aplicación para que pueda saber cuándo la conectividad cambió de WWAN a wifi. No te dirá si has cambiado de Edge a 3G o LTE por desgracia. La API de Reachability también tiene methods para probar la accesibilidad a un host específico. Por lo tanto, en su aplicación puede escuchar las notifications de que el método de connection ha cambiado y luego cambiar la accesibilidad de testing a su host de destino y, en ese momento, tomar la decisión de rebuild la session o dejarla intacta.