Pytanie Czy mogę w jakikolwiek sposób uniemożliwić iPhoneowi korzystanie z sieci 3G?


Piszę aplikację związaną z przewodnikiem turystycznym, która będzie pobierać duże bazy danych (60meg) potencjalnie za granicą, z kodem osiągalności, który mogę określić, kiedy host jest dostępny za pośrednictwem Wi-Fi lub 3g, ALE martwię się, że z jakiegoś powodu przerwane połączenie WiFi przez jakąś minutę, ponieważ niektóre połączenia DSL mogą często powodować, że iPhone przejdzie w sposób przezroczysty na 3G i nie zdając sobie sprawy, że mogę wystawić komuś rachunek za telefon z zagranicznymi opłatami za transmisję danych!

Zastanawiam się więc, czy ktoś ma jakieś doświadczenie, w przypadku takiej przerwy w łączność wifi (wifi nadal działa, ale jego połączenie z siecią jest wyłączone) czy raport o zasięgu osiągalności ReachableViaWWAN? Mogę więc poczekać, aż mój kod pobierania się zwróci, sprawdzić, jak host jest aktualnie dostępny i czy za pomocą 3g mogę przerwać?

Czy jest możliwe wybranie jakiego typu połączenia mogę używać wyłącznie 3g lub wifi?


12
2018-06-11 14:05


pochodzenie


Miło jest zobaczyć programistę, który nie przeszkadza użytkownikom. Mieć uprowadzenie. - samoz
Jeśli masz kontrolę nad tym, jakiej sieci użyć, być może ustaw ją jako konfigurowalną przez użytkownika. Niektóre osoby mogą nie mieć nic przeciwko powrotowi do 3G w razie potrzeby (np. Mają nowy plan 2 GB i nie mają nic przeciwko pobraniu 60 MB). - Jeff
Ma być konfigurowalny przez użytkownika, ale muszę go wdrożyć, jeśli mówi "nie ma 3g do pobrania". - dageshi


Odpowiedzi:


Jeśli spojrzysz w próbkę zasięgu, w Reachability.h, jest stała określona jako "kReachabilityChangedNotification"Jeśli poprosisz o powiadomienie o zmianach - zakładając, że działa to tak, jak się to wydaje - możesz zatrzymać połączenie, gdy spadnie do 3G.


5
2018-06-11 14:17



Tak, z czytania na ten temat wygląda to tylko w ten sposób. Tylko dużo debugowania, aby przetestować to działa zgodnie z oczekiwaniami. - dageshi


W obszarze Ustawienia-> Ogólne-> Sieć znajduje się "Roaming danych". Dzięki temu możesz wyłączyć roaming w innych sieciach danych podczas podróży zagranicznych. Użytkownik ma już do wyboru, czy zezwolić na drogie połączenia 3G podczas podróży.


1
2018-06-11 14:17



ahhh o.k, który może być przydatny. - dageshi
obstawiasz, zawsze trzymam to z daleka, odkąd jestem blisko granicy - progrmr


Tak, w ustawieniach-> ogólne-> sieć możesz wyłączyć 3G. Ale iPhone nadal będzie korzystać z telefonów komórkowych innych niż 3G.

Alternatywnie, kiedy podróżuję za granicę, umieszczam iPhone'a w trybie samolotowym, a następnie włączam ręczne wi-fi.


0
2018-06-11 14:10



Sądzę, że OP pyta, czy nie mogą programowo zablokować danych 3G z poziomu aplikacji, tak jak zrobiła to aplikacja Skype. - Gordon Fontenot
OK, nie było jasne, ale w drugim czytaniu myślę, że masz rację. - E.J. Brennan
Tak, ale dziękuję za to, że nie wiedziałem, że możesz włączyć Wi-Fi w trybie samolotowym. - dageshi


Nie; Uniksowy adres IP nie działa w ten sposób. Korzystanie z kodu osiągalności w większości przypadków jest właściwe, ale nadal istnieje szansa, że ​​wyślesz kilka pakietów przez 3G, zanim sobie z nimi poradzisz.

Można bezpiecznie założyć, że użytkownicy, którzy nie wyłączą "roamingu danych", zrobią to bardzo szybko. Z drugiej strony wielu użytkowników nie będzie miało nieograniczonych planów internetowych.

Jedną z opcji jest wyświetlenie komunikatu "Nie połączono przez Wi-Fi, czy chcesz pobrać dużo danych przez sieć komórkową? Możesz zostać obciążony". i przechowuj go w ustawieniu.


0
2018-06-11 19:51



FYI, AT & T zmierza w kierunku ograniczonych planów taryfowych, które są tańsze, jeśli pozostajesz poniżej 2 G miesięcznie (nigdy nie zbliżam się do siebie, ja sam). Nielimitowane konta są w tej chwili objęte grandfatheringiem, ale nowe konta będą miały limity 1G lub 2G, a moim zdaniem 10 USD / G po limicie kosztów w miesiącu. - David Thornley