2012-08-14 12 views
13

W wielu aplikacjach, takich jak aplikacja Poczta, jeśli urządzenie znajduje się w trybie samolotowym, pojawi się powiadomienie "Wyłącz tryb samolotowy lub Użyj Wi-Fi, aby uzyskać dostęp do danych . "Jak wywołać powiadomienie "Wyłącz tryb samolotowy"

Pomyślałem, że zostanie ono automatycznie wywołane, jeśli moja aplikacja będzie próbować uzyskać dostęp do internetu, ale tak nie jest. Czy istnieje specjalna metoda, aby to zrobić, lub jeśli nie, jak mogę sprawdzić, czy urządzenie jest w trybie samolotowym i podać link do Ustawień, aby go wyłączyć?

Odpowiedz

20

Jeśli dodać klucz UIRequiresPersistentWifi do Info.plist i ustawić ją na YES, a następnie, jeśli jesteś w trybie samolotowym, dostaniesz standard „Wyłącz tryb samolotowy ...” okienko na starcie.

+1

Od 2016 roku parametr UIRequiresPersistentWifi został zmieniony na "Aplikacja korzysta z Wi-Fi" w sekcji Informacje o ustawieniach aplikacji. –

0

Spójrz na this. Wygląda na to, że Airport control was moved by Apple into a separate framework

Wygląda na to, że nie ma standardowego sposobu powiadamiania użytkownika, aby ponownie włączył tryb samolotowy. Jak wspomniałeś, to oczywiście nie jest zbyt eleganckie, więc zakładam, że jabłko usunęło tę funkcję.

+0

To od 2009 roku i wykorzystuje wszelkiego rodzaju backdoory. Podejrzewam, że prawdziwa odpowiedź brzmi: "Nie ma mowy". Mam błąd w tej sprawie od około 3 lat - myślę, że Apple to przerobił. –

+0

To znaczy, myślę, że to wciąż działa, mimo że nie jest zbyt eleganckie. – Imirak

2

Podczas uruchamiania aplikacji można sprawdzić, czy sieć ma zasięg sieci bezprzewodowej. Sprawdź to

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

Mam klasy otoki dla reachbiltiy API, aby to prostsze w użyciu. (ASIHTTPRequest również ma jeden).

https://github.com/daltoniam/GPHTTPRequest

zobaczyć klasę GPReachablity do sprawdzania łączności. Jeśli chodzi o okno dialogowe, nie ma pewności, czy można go przesłać do aplikacji ustawień. Wszelkie pytania daj mi znać.

+0

Istnieją przypadki, gdy istnieje odbiór, ale nie ma połączenia z Internetem i będzie on fałszywie dodatni jako tryb samolotowy. Jeśli rozwijasz NIE dla rynku Apple, możesz skorzystać z prywatnego API: http: // stackoverflow.com/a/31583945/4260691, aby uzyskać siłę sygnału, a teraz, gdy zdarzenie zostanie uruchomione, możesz sprawdzić siłę sygnału w przypadku NotReachable. Jeśli siła sygnału wynosi zero, to jest to tryb samolotu 100%. – OhadM

4

Testuję w mojej aplikacji. Uważam, że to się zmieniło. "UIRequiresPersistentWifi" => "Aplikacja korzysta z Wi-Fi". Mam nadzieję, że to pomoże komuś.

xCode Target Properties

+0

Począwszy od 2016 roku wydaje się, że jest to najbardziej aktualna odpowiedź tutaj. –

2

Jeśli chcesz średnia Wyłącz tryb samolotowy lub wykorzystanie Wi-Fi dostępu do danych [Settings | ok]

  1. Dodaj nową właściwość w swojej info.plist klikając znak + na szczycie.
  2. Nowa właściwość nazywa UIRequiresPersistentWiFi (jest to podobne do powyższych księgowania, ale musi być dokładny w przeciwnym razie nie rejestruje)
  3. Zmień typ z String do Boolean
  4. zmiana wartości od NO do YES
  5. Wyczyść i przebuduj swoją aplikację
Powiązane problemy