2010-06-11 5 views
12

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

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

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

+3

Приятно видеть, что разработчик заинтересован в том, чтобы не накручивать своих пользователей. Имейте upvote. – samoz

+1

Если у вас есть контроль над используемой сетью, возможно, настройте ее на пользовательскую настройку. Некоторым людям, возможно, не стоит отказываться от 3G в случае необходимости (например, у них есть новый план 2 ГБ и не стоит загружать 60 МБ). – Jeff

+1

Он предназначен для настройки пользователем, но у меня должен быть какой-то способ его реализации, если они говорят «нет 3g для загрузки». – dageshi

ответ

0

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

В качестве альтернативы, когда я путешествую за границу, я помещаю iPhone в режим самолета, а затем вручную поворачиваю wi-fi.

+0

Я думаю, что OP спрашивает, могут ли они программно отключить данные 3G из приложения, как это делало приложение Skype. –

+0

ОК, было не ясно, но во втором чтении я думаю, что вы правы. –

+0

Да, но спасибо за то, что я не знал, что вы можете включить Wi-Fi во время полета. – dageshi

5

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

+0

Да, от чтения на нем это выглядит как единственный способ. Достаточно много отладки, чтобы проверить, как работает, как я полагаю. – dageshi

1

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

+1

ahhh o.k это может быть удобно. – dageshi

+0

вы делаете ставку, я всегда держу его с тех пор, как я рядом с границей. – progrmr

0

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

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

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

+0

FYI, AT & T движется в сторону ограниченных планов данных, которые дешевле, если вы останетесь ниже 2G в месяц (я никогда никуда не уйду, сам). Неограниченные учетные записи в настоящее время являются grandfathered, но новые учетные записи будут иметь ограничения 1G или 2G, и я думаю, что после этого $ 10/G и ограничение стоимости за месяц. –

 Смежные вопросы

  • Нет связанных вопросов^_^