2012-08-14 8 views
13

En muchas aplicaciones, como la aplicación Correo, si el dispositivo está en modo avión, aparecerá una notificación que dice "Desactivar modo avión o usar Wi-Fi para acceder a datos "Cómo invocar la notificación "Desactivar modo avión"

Pensé que esto se invocaría automáticamente si mi aplicación intenta acceder a Internet, pero no lo es. ¿Hay algún método especial para hacerlo o, de no ser así, cómo puedo verificar si el dispositivo está en modo avión y proporcionar un enlace a la Configuración para desactivarlo?

Respuesta

20

Si se agrega la clave UIRequiresPersistentWifi a su Info.plist y la ajuste en YES, a continuación, si se encuentra en modo de avión, que obtendrá la norma "apagar el modo de avión ..." emergente en el lanzamiento.

+1

A partir de 2016, UIRequiresPersistentWifi ha cambiado a "La aplicación usa Wi-Fi" en la sección de información de configuración de la aplicación. –

0

Eche un vistazo a this. Aparentemente, Airport control was moved by Apple into a separate framework

Parece que no hay una forma estándar de notificar al usuario que vuelva a activar el modo avión. Como mencionaste, esto obviamente no es muy elegante, así que supongo que Apple eliminó esta característica.

+0

Eso es de 2009 y utiliza todo tipo de puertas traseras. Sospecho que la verdadera respuesta es "De ninguna manera". He tenido un error en esto hace como 3 años, creo que Apple lo duplicó. –

+0

Bueno, quiero decir, creo que esto todavía funciona, a pesar de que no es muy elegante. – Imirak

2

Puede utilizar el marco de realidad de la manzana cuando se inicia la aplicación para verificar la conectividad de la red. Mira esto

http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html

tengo una clase contenedora para las API reachbiltiy para que sea más fácil de usar. (ASIHTTPRequest tiene uno también).

https://github.com/daltoniam/GPHTTPRequest

ver la clase GPReachablity para la comprobación de conectividad. En cuanto a un mensaje de diálogo, no estoy seguro de que haya una forma de ingresar a la aplicación de configuración. Cualquier pregunta házmelo saber.

+0

Hay casos en que hay recepción pero no conexión a Internet y será falso positivo como modo avión. Si no está desarrollando para el mercado de Apple, puede utilizar la API privada: http: // stackoverflow.com/a/31583945/4260691 para obtener la potencia de la señal y ahora, cuando se activa un evento, puede verificar la intensidad de la señal en el caso NotReachable. Si la potencia de la señal es cero, entonces es un modo 100% avión. – OhadM

4

Lo pruebo en mi aplicación. Lo encuentro cambiado "UIRequiresPersistentWifi" => "La aplicación usa Wi-Fi". Espero que ayude a alguien.

xCode Target Properties

+0

A partir de 2016, esta parece ser la respuesta más actualizada aquí. –

2

Si desea que la norma desactivar el modo de avión o utilizar Wi-Fi para acceder a datos [ajustes | ok]

  1. añadir una nueva propiedad en su info.plist haciendo clic en el signo + en la parte superior.
  2. La nueva propiedad se llama UIRequiresPersistentWiFi (esto es similar a las publicaciones anteriores, pero tiene que ser exacta de lo contrario, no se registra)
  3. Cambiar tipo String-Boolean
  4. Cambiar el valor NO-YES
  5. Limpie y reconstruya su aplicación
Cuestiones relacionadas