Iphone SDK обнаруживает сеть Wifi и Carrier

мое приложение обращается к Интернету, и я просто хочу определить, есть ли соединение через Wi-Fi или через сеть передачи данных оператора.

яблоко сделало пример для этого "Достижимости"

https://developer.apple.com/iphone/library/samplecode/Reachability/

Я думаю, что он просто обнаруживает Wi-Fi, а не сеть операторов связи.

может кто-нибудь сказать мне, что лучше всего сделать, чтобы определить, есть ли соединение (любой тип соединения)

Оцените помощь ур!

Ответ 1

Этот пример именно то, что вам нужно.

Посмотрите на Достижимость. он скажет вам, есть ли у вас какая-либо связь, а затем сообщите, какое у вас есть соединение.

Ответ 2

Пример Reachability может быть излишним, если вы просто хотите определить, подключены ли вы или нет, и какой тип соединения вы используете, если вы подключены. В самом деле, пример также содержит код, показывающий, как настраивать и использовать обратные вызовы, которые уведомляют вас об изменениях состояния.

Для фрагмента исходного кода, в котором вы точно указываете, подключены вы или нет, и какой тип соединения вы используете, вы можете взглянуть на мой ответ на аналогичный вопрос, размещенный .

Ответ 3

После того, как вы сделаете запрос на любой веб-ресурс, iPhone использует любое обнаруженное соединение, оно использует wifi (как более высокий приоритет), и если Wi-Fi не подключен, он использует сеть операторов связи. Там нет настроек кода, которые препятствуют сети оператора.

Все, что вам нужно сделать:

  • Проверьте сигнал на месте тестирования.
  • Проверьте ссылку, которую вы пытаетесь найти на сафари, чтобы убедиться, что это не ваше приложение, у которого есть проблема.
  • Обратитесь в службу поддержки оператора, если ссылка не работает в сафари (обязательно с использованием сети оператора).

Ответ 4

Эти методы полезны, но имейте в виду, что путь устройства к Интернету может состоять из нескольких разных типов соединений. Например, iPhone или iPod touch могут использовать Wi-Fi для подключения к мобильной точке доступа, которая, в свою очередь, имеет собственное 3G-соединение. Поэтому небезопасно предполагать, что наличие WiFi-соединения подразумевает более высокую пропускную способность, чем 3G.

Ответ 5

Достижимость (как образец кода Apple, так и другой похожий код, и базовая SCNetworkReachability скажет вам, что интернет-доступ отсутствует или вы получите доступ через Интернет через WiFi или что вы получите доступ в Интернет через мобильный данных.

Если у вас есть доступ к WiFi и мобильным данным, он скажет вам "WiFi". Невозможно узнать, какие мобильные данные доступны, когда у вас есть WiFi. (Вы можете легко узнать, что мобильные данные доступны, когда нет WiFi). Вы не можете узнать, включен ли режим полета (который будет отличаться от Wi-Fi и мобильных данных отключен).

Доступная WiFi не гарантирует, что загрузка будет использовать WiFi, а не мобильные данные. Вы можете начать загрузку дома, оставьте минуту спустя, WiFi исчезнет, ​​и iOS с удовольствием продолжит скачивание через 3G. Вы можете установить флаг в вызове загрузки, чтобы запретить 3G. Код ошибки будет -1009 = Нет доступа в Интернет, не упоминается, что 3G был бы доступен.

Используя CTTelephonyNetworkInfo, вы можете узнать, что вы находитесь на устройстве, которое может иметь мобильные данные (а не iPod Touch или iPad без мобильных данных, а в устройстве есть SIM-карта).