У меня есть несколько вопросов о возможности соединения на Android, если бы у кого-либо есть понимание, это было бы большим.
1) Каково значение по умолчанию, когда приложение хочет с помощью беспроводных технологий соединиться? Это - wlan? И если wlan выключен или нет никаких точек доступа вокруг, это 3 г или gprs?
2) Устройство всегда является соединенным IP? Или когда его отключенное от wlan или 3 г это теряет свой IP-адрес?
3) Приложение, например, браузер, только когда-либо подключенный к одному IP-адресу? Или это может быть подключено к нескольким адресам для каждого радио, таким как gprs или Wi-Fi (wlan)?
4) Приложение может решить который соединение открыть сокет для? Например, я могу создать приложение и решить, подключить ли сокет к wlan или gprs? Или ОС решает?
5) Наконец, как исходные приложения обрабатывают возможность соединения? Таким же образом?
Как и на любом компьютере с Linux, у вас есть разные устройства для разных сетевых интерфейсов, например на моем устройстве: eth0 для WLAN, rmnet0 для 3G / GPRS (невозможно подключиться одновременно через 3G и GPRS). Подключенный интерфейс получает IP-адрес, и таблицы маршрутизации ядра обновляются таким образом что все пакеты будут маршрутизироваться через подключенное устройство. Теоретически у вас могут быть подключены оба интерфейса, однако на всех устройствах Android, которые я видел, одновременно будет активен только один сетевой интерфейс (исключая переходные периоды , когда Wi-Fi включается или выключается, или когда сохраняющееся TCP-соединение все еще активно).
Обычно собственные приложения не заботятся о подключении к Интернету - если есть какое-либо соединение, оно будет работать; в противном случае приложение получит тайм-аут соединения (или аналогичную ошибку).