2012-08-14 15 views
13

In molte applicazioni, come l'app Mail, se il dispositivo è in modalità aereo verrà visualizzata una notifica con la dicitura "Disattiva modalità aereo o Usa Wi-Fi per accedere ai dati ".Come richiamare la notifica "Disabilita modalità aereo"

Ho pensato che questo sarebbe stato invocato automaticamente se la mia app tentasse di accedere a Internet, ma non lo è. Esiste un metodo speciale per farlo o, in caso contrario, come posso verificare se il dispositivo è in modalità aereo e fornire un collegamento alle Impostazioni per disabilitarlo?

risposta

20

Se si aggiunge la chiave UIRequiresPersistentWifi al Info.plist e impostarlo YES, quindi se siete in modalità Aereo, si otterrà lo standard "disattivare la modalità aereo ..." pop-up sul lancio.

+1

A partire dal 2016, UIRequiresPersistentWifi è stato modificato in "Applicazione utilizza Wi-Fi" nella sezione Informazioni sulle impostazioni dell'app. –

0

Dai uno sguardo allo this. Apparentemente, Airport control was moved by Apple into a separate framework

Sembra che non ci sia un modo standard per notificare all'utente di riattivare la modalità aereo. Come hai detto, ovviamente non è molto elegante, quindi presumo che Apple abbia eliminato questa funzione.

+0

Questo è del 2009 e utilizza tutti i tipi di backdoor. Sospetto che la vera risposta sia "No way". Ho avuto un bug su questo per come 3 anni ora - penso che Apple lo abbia duppato. –

+0

Beh, intendo penso che funzioni ancora, anche se non è molto elegante. – Imirak

2

È possibile utilizzare il framework di raggiungibilità di Apple all'avvio dell'app per verificare la connettività di rete. Check this out

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

Ho una classe wrapper per le API reachbiltiy per rendere più semplice da usare. (Anche ASIHTTPRequest ne ha uno).

https://github.com/daltoniam/GPHTTPRequest

vedere la classe GPReachablity per la verifica per la connettività. Per quanto riguarda una finestra di dialogo, non è sicuro che ci sia un modo per passare all'app delle impostazioni. Se ci sono domande, fatemelo sapere.

+0

Ci sono casi in cui è presente la ricezione ma non la connettività Internet e sarà falso positivo come modalità aereo. Se stai sviluppando NOT per il mercato Apple, puoi utilizzare l'API privata: http: // stackoverflow.it/a/31583945/4260691 per ottenere l'intensità del segnale e ora quando un evento viene attivato è possibile verificare la potenza del segnale nel caso NotReachable. Se la potenza del segnale è zero, allora è una modalità di volo 100%. – OhadM

4

I test nella mia app. Lo trovo cambiato. "UIRequiresPersistentWifi" => "L'applicazione utilizza il Wi-Fi". Spero che possa aiutare qualcuno.

xCode Target Properties

+0

A partire dal 2016 questa sembra essere la risposta più aggiornata qui. –

2

Se si desidera che lo standard disattiva la modalità aereo o utilizzare il Wi-Fi di accesso ai dati [Impostazioni | ok]

  1. aggiungere una nuova proprietà nella vostra info.plist facendo clic sul segno + in alto.
  2. La nuova proprietà è chiamata UIRequiresPersistentWiFi (questo è simile ai distacchi di cui sopra, ma ha bisogno di essere precisi altrimenti non registra)
  3. Cambia tipo String-Boolean
  4. Modificare il valore NO-YES
  5. Pulisci e ricostruisci la tua app
Problemi correlati