Я хотел бы получить доступ к веб-сервису, обеспеченному одной из машин на моей LAN от эмулятора андроида.
Если бы сервис работал на той же машине, куда эмулятор работает (названный хостом), я мог добавить сетевое перенаправление и получить доступ к 10.0.2.2 (разместите петлевой интерфейс в эмуляторе) с правильным портом.
Однако это работает на другой машине на LAN. Я предполагаю, что мог добавить, другое перенаправление на хосте дополнительно выше одного (должен будет бороться с iptables, хотя...), но больше простого решения существует?
Ну, это просто работает (ТМ).
В руководстве по эмулятору Android, которое я прочитал перед тестированием (я пытаюсь использовать RTFM, прежде чем что-то делать), это сказано:
Каждый экземпляр эмулятора работает за виртуальным маршрутизатором / брандмауэром, который изолирует его от вашей машины разработки. сетевые интерфейсы и настройки и из Интернета. Эмулируемое устройство не может видеть вашу машину разработки или другие экземпляры эмулятора в сети. Вместо этого он видит только то, что он подключен через Ethernet к маршрутизатору / межсетевому экрану.
Это заставило меня подумать, что он не может получить доступ к моей локальной сети. Я был неправ, просто добавление IP-адреса сервера в мою локальную сеть позволило мне получить к нему доступ из эмулятора.
Вы можете получить настоящее устройство Android и подключить его к локальной сети (я сделал это).
Как вы подключаетесь к главной машине? через html? потому что, если вашему приложению требуется жесткое соединение с машиной, это не очень хорошее решение для мобильного устройства.