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