Мое действие должно связаться с сервером Java, расположенным на моей dev машине. На самом деле, с помощью эмулятора, я могу получить доступ к сокету сервера через специальные 10.0.2.2 адреса. Теперь я хотел бы протестировать свое приложение по моему телефону, подключенному через usb, но кажется, что я не могу использовать 10.0.2.2 для доступа к моей dev машине localhost больше. Естественно использование маршрутизатора Wi-Fi и надлежащего обращения LAN добивается цели, но я должен использовать соединение USB вместо этого. Какая-либо подсказка?
править:
Просто добавленные различные сценарии, чтобы позволить всем понять лучше:
1. Основанный на эмуляторе сценарий:
Когда приложение для Android должно связаться с сервером, это использует 10.0.2.2:15000 как указанный здесь. Все хорошо работает.
2. Надлежащий сценарий Wi-Fi с физическим подключенным устройством:
Когда приложение для Android должно связаться с сервером, это использует 192.168.1.10:15000, и все хорошо работает также.
3. Желаемый сценарий:
Когда приложение для Android должно связаться с сервером, это пытается соединиться с 10.0.2.2:15000, но вместо этого исключение выдается (Недостижимая сеть). Это походит на специальный адрес 10.0.2.2 работы только для экземпляров эмулятора.
Я просто задаюсь вопросом, существует ли в adb/adt комплекте способ получить доступ к адресу ПК от устройства, подключенного через USB-кабель. Я надеюсь, что это немного более ясно теперь.Спасибо.
Похоже, что нет способа позволить сценарию №3 работать должным образом, потому что USB-соединение не является настоящим сетевым соединением, и с ним не связан IP-адрес Телефон.
На самом деле, я решил использовать одноранговое соединение Wi-Fi между моим телефоном и компьютером. Этот сценарий аналогичен сценарию №2, но без маршрутизатора или DHCP. К сожалению, мой Hero не может обрабатывать специальные соединения изначально из-за этой проблемы . Поэтому мне пришлось рутировать свое устройство и вручную изменить какой-то скрипт конфигурации. Я надеюсь, что такие функции будут доступны в следующих выпусках.
Вы можете настроить соединение с телефоном через USB с вашего компьютера разработчика, но вам необходимо adb forward
. Однако я не думаю, что вы можете использовать другой путь через usb: установить соединение от телефона к компьютеру.
Вы можете подключить свой компьютер к телефону и проверить, какой у него IP.
Размышляя об этом, я понял, что, используя adb forward
, вы должны использовать localhost
в качестве хоста, так что, возможно, вы также можете сделать это на своем телефоне: adb перенаправьте
порт, который вы хотите использовать, и на своем телефоне подключитесь к этому порту на локальном хосте.