Pregunta

mi aplicación accede a Internet y solo quiero detectar si hay una conexión a través de wifi o de la red de datos del operador o no

apple ha hecho un ejemplo para esa " Accesibilidad "

https://developer.apple.com/iphone/library/samplecode/ Accesibilidad /

creo que solo detecta el wifi y no la red del operador

alguien puede decirme, ¿qué es lo mejor que se puede hacer para detectar si hay una conexión (cualquier tipo de conexión)

¡Aprecio tu ayuda!

¿Fue útil?

Solución

Esa muestra es exactamente lo que necesita.

Mire Alcance.m. le dirá si tiene alguna conexión y luego le dirá qué tipo de conexión tiene.

Otros consejos

El ejemplo de accesibilidad puede ser excesivo si solo desea detectar si está conectado o no, y qué tipo de conexión está utilizando si está conectado. De hecho, el ejemplo también contiene un código que muestra cómo configurar y usar las devoluciones de llamada que le notifican los cambios de estado.

Para obtener un fragmento de código fuente que le diga exactamente si está conectado o no, y qué tipo de conexión está utilizando, puede consultar mi respuesta a una pregunta similar, publicada aquí .

Una vez que realiza una solicitud a cualquier recurso web, el iPhone usa cualquier conexión que encuentre, usa wifi (como una prioridad más alta), y si el wifi no está conectado, usa la red del operador. No hay configuraciones de código que impidan la red del operador.

Todo lo que tienes que hacer:

  • Verifique la señal en el lugar de prueba.
  • Verifique el enlace que está intentando alcanzar en un safari, para asegurarse de que no sea su aplicación la que tenga el problema.
  • Póngase en contacto con el soporte de su operador si el enlace no funciona en un safari (seguro que usa la red del operador)

Estas técnicas son útiles, pero tenga en cuenta que la ruta del dispositivo a Internet puede consistir en varios tipos diferentes de conexiones. Por ejemplo, un iPhone o iPod touch podría estar usando WiFi para conectarse a un punto de acceso móvil, que a su vez tiene su propia conexión inalámbrica 3G. Por lo tanto, no es seguro asumir que la presencia de una conexión WiFi implica un mayor ancho de banda que 3G.

Accesibilidad (tanto el código de muestra de Apple como el código similar de otras personas, y la SCNetworkReachability subyacente le dirá que no hay acceso a Internet o que obtendrá acceso a Internet a través de WiFi o que obtendrá acceso a Internet a través de dispositivos móviles datos.

Si tiene disponible tanto WiFi como datos móviles, le dirá "WiFi". No hay forma de descubrir que los datos móviles están disponibles cuando tienes WiFi. (Puede descubrir fácilmente que los datos móviles están disponibles cuando no hay WiFi). No puede averiguar si el modo Avión está activado (que sería diferente de WiFi y los datos móviles desactivados).

WiFi disponible no garantiza que una descarga use WiFi y no datos móviles. Puede comenzar una descarga en casa, irse un minuto más tarde, WiFi desaparece e iOS continuará felizmente descargando a través de 3G. Puede establecer un indicador en la llamada de descarga para no permitir 3G. El código de error será -1009 = Sin acceso a internet, sin mencionar que 3G habría estado disponible.

Usando CTTelephonyNetworkInfo puede descubrir que está en un dispositivo que podría tener datos móviles (no un iPod Touch o iPad sin datos móviles, y hay una SIM en el dispositivo).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top