Моя активность должна связываться с 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-кабель. Надеюсь, теперь это станет более ясным. Спасибо.