Доступ к локальной машине разработчика через USB - PullRequest
12 голосов
/ 26 марта 2010

Мое действие должно общаться с сервером Java, расположенным на моем компьютере разработчика. На самом деле, используя эмулятор, я могу получить доступ к сокету сервера через специальный адрес 10.0.2.2. Теперь я хотел бы протестировать свое приложение на своем телефоне, подключенном через USB, но кажется, что я больше не могу использовать 10.0.2.2 для доступа к своему локальному хосту на моей машине. Естественно, использование Wi-Fi роутера и правильной локальной адресации делает свое дело, но вместо этого мне нужно использовать USB-соединение. Любой намек?

редактировать:
Просто добавили разные сценарии, чтобы все лучше поняли:

1. Сценарий на основе эмулятора:

  • стандартный java-сервер, работающий на моем компьютере @localhost: 15000
  • Android-клиент Java работает на моем эмуляторе.

Когда приложению Android необходимо связаться с сервером, оно использует 10.0.2.2:15000, как указано здесь . Все отлично работает.

2. Правильный сценарий Wi-Fi с физически подключенным устройством:

  • стандартный java-сервер, работающий на моем компьютере @ 192.168.1.10: 15000.
  • Android-клиент Java работает на моем устройстве с назначенным адресом 192.168.1.11.

Когда приложению Android нужно связаться с сервером, оно использует 192.168.1.10:15000, и все тоже работает нормально.

3. Желаемый сценарий:

  • стандартный java-сервер, работающий на моем компьютере @localhost: 15000.
  • Android-клиент Java работает на моем устройстве, подключенном через USB-кабель. Сеть не активна.

Когда приложению android нужно связаться с сервером, оно пытается подключиться к 10.0.2.2:15000, но вместо этого выдается исключение (сеть недоступна). Кажется, специальный адрес 10.0.2.2 работает только для экземпляров эмулятора.

Мне просто интересно, есть ли в наборе adb / adt способ доступа к адресу компьютера с устройства, подключенного через USB-кабель. Надеюсь, теперь это немного яснее. Спасибо.

Ответы [ 2 ]

3 голосов
/ 29 марта 2010

Похоже, что нет никакого способа, чтобы сценарий № 3 работал должным образом, потому что USB-соединение не является реальным сетевым соединением и с ним не связан IP-телефон.

На самом деле мое решение - использовать беспроводное Wi-Fi соединение между моим телефоном и компьютером. Этот сценарий похож на # 2, но без маршрутизатора или DHCP. К сожалению, мой Герой не может обрабатывать специальные соединения изначально из-за этой проблемы . Поэтому мне пришлось рутировать свое устройство и вручную изменять какой-либо скрипт конфигурации. Я надеюсь, что подобная функциональность будет доступна в следующих выпусках.

0 голосов
/ 26 марта 2010

Вы можете установить соединение с вашим телефоном через USB с вашего ПК, но вам нужно adb forward. Тем не менее, я не думаю, что вы можете маршрутизировать через USB: установить соединение с телефона на ПК.

Вы можете подключить компьютер к телефону и проверить, какой у него IP.

Размышляя об этом, я понял, что, используя adb forward, вы должны использовать localhost в качестве хоста, поэтому, возможно, вы могли бы сделать это и на своем телефоне: adb forward порт, который вы хотите использовать, и на своем телефоне. , подключитесь к этому порту на localhost.

...