Ответ 1
Это вполне возможно в iOS7. Проверьте этот ответ
Надеюсь, что это поможет
Я пытался проверить, подключено ли устройство через 2G (GPRS, EDGE) или 3G (UMTS, HSDPA).
Я нашел класс класса возвращаемости из здесь (пример Apple Dev)
В этом примере проверьте только его Wi-Fi или WWAN. Я хочу использовать его, чтобы решить, я загружаю небольшие данные или огромные файлы. Поскольку он отличается от GRPS и UMTS.
Можно ли отличить 2G и 3G?
Это вполне возможно в iOS7. Проверьте этот ответ
Надеюсь, что это поможет
Поскольку вы не можете получить эту информацию официальным способом, как сделать снимок экрана и сделать обработку парсера/изображения для значка сетевого подключения к строке состояния. Уродливо, но будет работать. И будет весело:)
Я думаю, что лучшим вариантом является "переосмыслить" ваш процесс:
Нет официального API для определения того, является ли пользователь 2G или 3G
3G технически быстрее, чем 2G, но на практике есть много случаев, когда 3G очень, очень медленный (плохой охват, слишком большой трафик и т.д.).
Я тяжелый мобильный интернет-пользователь, и может случиться, что у меня есть лучший 2G, чем 3G. Учитывайте также, что 3G работает быстро в хороших условиях, но он не предназначен для поддержки больших объемов данных (со стороны оператора и со стороны устройства)...
Вот почему вы должны принять решение о загрузке небольшого или большого файла на основе WiFi/non-WiFi.
Тем не менее, для "маленького файла" не делайте его "слишком маленьким", большинство людей, которые будут использовать ваше приложение в WWAN, вероятно, будут иметь правильное покрытие.
(Основываясь на моем опыте работы с неплохими приложениями для аудитории во Франции и Бельгии)