Доступ к dev машине localhost через usb
Моя активность должна связываться с java-сервером, расположенным на моей машине dev. Фактически, используя эмулятор, я могу получить доступ к сокету сервера через специальный адрес 10.0.2.2. Теперь я хотел бы протестировать мое приложение на моем телефоне, подключенном через usb, но похоже, что я не могу использовать 10.0.2.2 для доступа к моему dev machine localhost больше.
Естественно, использование Wi-Fi-маршрутизатора и правильная локальная адресация делают трюк, но вместо этого мне нужно использовать USB-соединение. Любой намек?
изменить:
Просто добавили разные сценарии, чтобы все понимали лучше:
1. Эмуляторный сценарий:
- стандартный java-сервер, работающий на моем компьютере @localhost: 15000
- Клиент iroid java работает на моем эмуляторе.
Когда приложение android должно связаться с сервером, оно использует 10.0.2.2:15000, как указано здесь.
Все работает нормально.
2. Правильный сценарий Wi-Fi с подключенным физическим устройством:
- стандартный java-сервер, запущенный на моем компьютере @192.168.1.10: 15000.
- клиент javascript для Android, работающий на моем устройстве с назначенным адресом 192.168.1.11.
Когда приложение андроида должно связаться с сервером, оно использует 192.168.1.10:15000, и все работает отлично.
3. Желаемый сценарий:
- стандартный java-сервер, запущенный на моем компьютере @localhost: 15000.
- клиент javascript для Android, работающий на моем устройстве, подключенном через USB-кабель. Сеть не активна.
Когда приложение android должно связаться с сервером, оно пытается подключиться к 10.0.2.2:15000, но вместо этого генерируется исключение (Network unreachable). Кажется, что специальный адрес 10.0.2.2 работает только для экземпляров эмулятора.
Мне просто интересно, есть ли в пакете adb/adt доступ к адресу pc с устройства, подключенного через USB-кабель.
Надеюсь, теперь это станет более ясным.
Спасибо.
Ответы
Ответ 1
Кажется, не существует способа, позволяющего сценарию № 3 работать должным образом, потому что соединение usb не является реальным сетевым подключением, и нет телефона, связанного с ним по телефону.
На самом деле мое решение заключается в использовании специального соединения wifi между моим телефоном и моим компьютером. Этот сценарий похож на №2, но без маршрутизатора или dhcp. К сожалению, мой Герой не может обрабатывать специальные соединения из-за этот вопрос. Поэтому я должен был запустить мое устройство и вручную изменить конфигурацию script. Я надеюсь, что такие функции могут быть доступны в следующих версиях.
Ответ 2
Вы можете настроить подключение к вашему телефону через USB с вашего компьютера, но вы должны adb forward
. Тем не менее, я не думаю, что вы можете маршрутизировать по-другому через usb: настройка соединения с телефоном на ПК.
Вы могли бы подключить свой компьютер к телефону и проверить, какой IP-адрес он имеет.
Подумав об этом, я понял: используя adb forward
, вы должны использовать localhost
в качестве своего хоста, поэтому, возможно, вы также можете сделать это на своем телефоне: adb forward
порт, который вы хотите использовать, и на своем телефоне, подключитесь к этому порту на локальном хосте.