2012-08-14 9 views
13

In vielen Anwendungen, z. B. in der E-Mail-App, erscheint im Flugzeugmodus die Meldung "Flugzeugmodus deaktivieren oder Wi-Fi für den Datenzugriff verwenden" . "So rufen Sie die Benachrichtigung "Flugmodus deaktivieren" auf

Ich dachte, dass dies automatisch aufgerufen würde, wenn meine App versucht, auf das Internet zuzugreifen, aber es ist nicht. Gibt es eine spezielle Methode, um dies zu tun, oder wenn nicht, wie kann ich überprüfen, ob das Gerät im Flugzeugmodus ist und einen Link zu den Einstellungen bereitstellen, um es zu deaktivieren?

Antwort

20

Wenn Sie die UIRequiresPersistentWifi Schlüssel zu Ihrem Info.plist und setzen Sie sich auf YES hinzufügen, dann, wenn Sie in dem Flugmodus sind, dann müssen Sie den Standard erhalten „Turn Off Flugmodus ...“ Pop-up auf dem Start.

+1

Ab 2016 wurde UIRequiresPersistentWifi in der Info-Sektion der App-Einstellungen in "Anwendung nutzt WLAN" geändert. –

0

Werfen Sie einen Blick auf this. Anscheinend Airport control was moved by Apple into a separate framework

Es scheint, dass es keine Standardmethode gibt, um den Benutzer zu benachrichtigen, den Flugzeugmodus wieder einzuschalten. Wie Sie erwähnt haben, ist dies offensichtlich nicht sehr elegant, also nehme ich an, dass Apple diese Funktion gelöscht hat.

+0

Das ist von 2009 und verwendet alle Arten von Hintertüren. Ich vermute, die wirkliche Antwort ist "No way". Ich habe seit ungefähr 3 Jahren einen Fehler darin - ich denke, dass Apple es verdoppelte. –

+0

Nun, ich denke, das funktioniert immer noch, obwohl es nicht sehr elegant ist. – Imirak

2

Sie können das Reachablity-Framework des Apfels beim Start der App verwenden, um nach Netzwerkkonnektivität zu suchen. Check this out

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

Ich habe eine Wrapper-Klasse für reachbiltiy APIs es einfacher zu machen, zu verwenden. (ASIHTTPRequest hat auch einen).

https://github.com/daltoniam/GPHTTPRequest

siehe GPReachablity Klasse für die Konnektivität zu überprüfen. Soweit eine Dialog-Eingabeaufforderung, nicht sicher, gibt es eine Möglichkeit, die Einstellungen App zu schieben. Irgendwelche Fragen lassen Sie mich wissen.

+0

Es gibt Fälle, in denen es einen Empfang, aber keine Internetverbindung gibt, und es wird als Flugmodus falsch positiv sein. Wenn Sie NICHT für den Markt von Apple entwickeln, können Sie die private API verwenden: http: // stackoverflow.com/a/31583945/4260691, um die Signalstärke zu erhalten, und jetzt, wenn ein Ereignis ausgelöst wird, können Sie im NotReachable-Fall nach der Signalstärke suchen. Wenn die Signalstärke Null ist, handelt es sich um einen 100% -Flugzeugmodus. – OhadM

4

Ich teste in meiner App. Ich finde es verändert. "UIRequiresPersistentWifi" => "Anwendung verwendet Wi-Fi". Ich hoffe, es wird jemandem helfen.

xCode Target Properties

+0

Ab 2016 scheint dies die aktuellste Antwort zu sein. –

2

Wenn Sie die Standard-Off Flugzeugmodus Schalten oder Verwenden Wi-Fi Access Data [Einstellungen | ok]

  1. eine neue Eigenschaft in Ihrem info.plist hinzufügen, indem Sie das + Schild an der Spitze klicken.
  2. Die neue Eigenschaft wird UIRequiresPersistentWiFi genannt (dies oben Buchungen ähnlich ist, aber um genau zu sein braucht, sonst ist es nicht registrieren)
  3. Change String-Boolean
  4. Wert ändern NO-YES
  5. Reinigen und neu erstellen Sie Ihre App
Verwandte Themen