Есть ли простой способ настроить эмулятор Android для доступа к локальной сети хост-машины? - PullRequest
12 голосов
/ 10 июня 2010

Я хотел бы получить доступ к веб-службе, предоставляемой одной из машин в моей локальной сети, из эмулятора Android.

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

Однако он работает на другом компьютере в локальной сети. Я думаю, что я мог бы добавить еще одно перенаправление на хосте в дополнение к вышеуказанному (пришлось бы бороться с iptables, хотя ...), но существует ли более простое решение?

Ответы [ 4 ]

5 голосов
/ 11 июня 2010

Ну, это просто работает (ТМ).

В руководстве по эмулятору Android, которое я прочитал до тестирования (я пытаюсь выполнить RTFM, прежде чем что-то делать), указано:

Каждый экземпляр эмулятора работает за службой виртуального маршрутизатора / брандмауэра, которая изолирует его от сетевых интерфейсов и настроек вашей машины разработки и от Интернета.Эмулируемое устройство не может видеть вашу машину разработки или другие экземпляры эмулятора в сети.Вместо этого он видит только то, что он подключен через Ethernet к маршрутизатору / брандмауэру.

Это заставило меня думать, что он не может получить доступ к моей локальной сети.Я был неправ, просто добавив IP-адрес сервера в локальной сети, я получил доступ к нему из эмулятора.

4 голосов
/ 09 декабря 2010

Как мы знаем, эмулятор может получить доступ к хост-машине по IP 10.0.2.2, поэтому я пробовал переадресацию IP, но не смог заставить его работать ..: |

Я перешел по ссылке ниже для пересылки запроса от localhost (10.0.2.2 в случае эмулятора) на другую машину в локальной сети.

http://www.debuntu.org/how-to-redirecting-network-traffic-a-new-ip-using-iptables

1 голос
/ 23 августа 2018

по состоянию на 2018-08 кажется, что сертификат "он просто работает (TM)" был аннулирован

вот что мне нужно для доступа к серверу в моей локальной сети:

host ip (my pc): 192.168.15.102/24 
      server ip: 192.168.200.33/24

создать правило переадресации портов в командной строке с повышенными правами на хост , используя netsh

netsh interface portproxy add v4tov4 listenport=80 connectport=80 connectaddress=192.168.200.33

, запустить эмулятор мобильного устройства и перейти к 10.0.2.2 (как указано в документации ):

10.0.2.2 Специальный псевдоним интерфейса обратной связи вашего хоста (т. Е. 127.0.0.1 на вашем компьютере разработчика)

0 голосов
/ 10 июня 2010

Вы можете получить реальное устройство Android и подключить его к локальной сети (я сделал это).

Как вы подключаетесь к хост-машине? через html? потому что если вашему приложению требуется жесткая линия связи с машиной, то это не очень хорошее решение для мобильного устройства.

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