Подключение iPhone 3G / Wi-Fi

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

Это возможно?

Более технически: - iPhone подключается к специальной сети и выбирает автоматический IP-адрес, такой как 169.254.x.x - Получает данные из 169.254.1.1 (известный IP-адрес датчика) - отправляет данные с помощью веб-служб на www.xyz.com/dataEntry

Кроме того, я провожу этот небольшой тест: - Сделайте точку доступа P2P на моей Win7 - подключите мой iPhone к точке доступа P2P - попробуйте просмотреть веб-сайт в Интернете, и это не удастся. Я не могу открыть google.com, например.

Как насчет Android, хотя и менее важного, я бы хотел предложить это приложение и на Android ...

Спасибо, F.


person Frank    schedule 30.06.2011    source источник
comment
похоже, что мы оба находимся в одинаковых ситуациях. Можете ли вы привести пример того, как у вас что-то работает? У меня открытый вопрос: stackoverflow.com/questions/8015553/   -  person AtomRiot    schedule 07.11.2011


Ответы (3)


Для iphone большинство людей начинают / используют Apple Reachability образец кода. Используя этот код, довольно легко определить, является ли текущее подключение к Интернету Wi-Fi. Если это не Wi-Fi, вы можете предположить, что это соединение 3g.

Для Android вы используете API ConnectivityManager getActiveNetworkInfo () для получения текущей сети Информация.

person Shane Powell    schedule 30.06.2011
comment
Не предполагайте 3G, если это не Wi-Fi. Есть определенные значения перечисления ReachableViaWWAN и ReachableViaWifi, проверьте их. Если это NotReachable, то вам необходимо сообщить пользователю о том, что подключение к сети 3G недоступно, и позволить ему повторить попытку подключения по своему усмотрению или автоматически после резервного копирования 3G (все это показано в примере «Reachability»). Кроме того, это лучшая версия Reachability, чем пример кода Apple: blog.ddg.com/?p= 24 - person ; 30.06.2011
comment
Спасибо за ответ, ребята .. Не совсем отвечаю на мой вопрос .. Мы говорим о двух разных сетевых доменах, работающих одновременно .. WiFi для локальной подсети без подключения к Интернету и 3G для сервера в Интернете ... - person Frank; 30.06.2011
comment
насколько я знаю, на iphone нельзя одновременно иметь два соединения ... - person Shane Powell; 30.06.2011
comment
@ darvids0n правильный. Я раньше не видел ту версию кода Reachability, спасибо! - person Shane Powell; 30.06.2011
comment
хорошо .. Я доказал, что это работает .. Я успешно отправляю и получаю пакеты по WiFi (на IP 169.254.1.1, который является датчиком) и получаю возможность доступа к сети до www.apple.com через сотовую связь .. Итак, да .. Однако где-то есть неприятная ошибка, так как мой телефон перестал работать через 3G после нескольких тестов и перезагрузки, необходимой для восстановления. Я это тоже прослежу. - person Frank; 30.06.2011

IPhone будет поддерживать связь 3G при каждом подключении к одноранговой сети Wi-Fi. Так работает tether.com. Это даже несколько раз поддерживало бы сеть 3G, когда есть открытое соединение TCP / IP, даже если Wi-Fi включен и подключен к Интернету.

Телефоны Android вообще не подключались к одноранговым сетям. API 14 (ICS) предлагает возможность подключения телефона к телефону с помощью WiFiDirect, но только между телефонами Android. Вы, конечно, можете рутировать телефон и разрешить одноранговые соединения.

person Avner    schedule 13.05.2012

Короткий ответ: да, работает! В основном ваш основной iPhone будет иметь SSID, который даст возможность другим устройствам подключаться к нему. Эти устройства будут самостоятельно назначать IP-адрес в той же подсети, что и основная. Если им не назначен шлюз по умолчанию, они не будут подключены к Интернету.

person falkon21    schedule 24.02.2015