Могу ли я запретить iPhone использовать 3G при любых обстоятельствах? - PullRequest
12 голосов
/ 11 июня 2010

Я пишу приложение, связанное с путеводителем, которое будет загружать большие базы данных (60 мегабайт), потенциально за рубежом, с кодом доступности, который я могу определить, когда хост становится доступным через Wi-Fi или 3G, но я беспокоюсь, что если по какой-то причине Wi-Fi-соединение обрывается на минуту или около того, так как некоторые DSL-соединения, скорее всего, будут происходить в некоторых случаях, когда iphone будет прозрачно переключаться на 3G, и даже не подозревая, что я могу набрать кому-то счет за телефонную связь с оплатой за границу!

Так что мне интересно, есть ли у кого-нибудь опыт, в случае такого перерыва в подключении Wi-Fi (Wi-Fi все еще работает, но подключение к сети не работает), сообщит ли код достижимости ReachableViaWWAN? Так что я могу подождать, пока вернется мой код загрузки, проверить, насколько хост доступен в настоящий момент, и если это через 3g, я могу прервать работу?

Можно ли выбрать тип подключения, который я могу использовать исключительно 3G или Wi-Fi исключительно?

Ответы [ 4 ]

5 голосов
/ 11 июня 2010

Если вы посмотрите в выборке Reachability, в Reachability.h есть константа, определенная как "kReachabilityChangedNotification".Если вы попросите, чтобы вас уведомили об изменениях (при условии, что это работает так, как звучит), вы можете прервать соединение, когда оно падает до 3G.

1 голос
/ 11 июня 2010

Под Настройки-> Общие-> Сеть есть «Роуминг данных». Это позволяет отключить роуминг в других сетях передачи данных при поездках за границу. У пользователя уже есть выбор, разрешать ли дорогие подключения 3G во время путешествия.

0 голосов
/ 11 июня 2010

Нет; IP в стиле Unix так не работает. Использование кода достижимости будет в основном правильным, но все же есть вероятность, что вы отправите несколько пакетов через 3G, прежде чем обработать уведомление.

Вероятно, можно предположить, что пользователи, которые не отключают «роуминг данных», сделают это очень быстро. С другой стороны, у многих пользователей не будет безлимитных интернет-планов.

Один из вариантов - отобразить что-то вроде: «Не подключен по Wi-Fi, хотите ли вы загружать много данных по сотовой сети? и сохраните его в настройках.

0 голосов
/ 11 июня 2010

Да, в настройках-> общие-> сеть можно отключить 3G.Но iphone по-прежнему будет использовать сотовую связь не 3G.

Кроме того, когда я путешествую за границу, я переключаю iPhone в режим полета, а затем вручную включаю Wi-Fi.

...