Mi actividad necesita comunicarse con un servidor Java ubicado en mi máquina de desarrollo. En realidad, usando el emulador, puedo acceder al socket del servidor a través de la dirección especial 10.0.2.2. Ahora me gustaría probar mi aplicación en mi teléfono conectado a través del usb, pero parece que ya no puedo usar 10.0.2.2 para acceder a mi máquina de desarrollo localhost. Naturalmente, el uso de un enrutador wifi y un direccionamiento de LAN adecuado hace el truco, pero en su lugar tengo que usar conexión USB. ¿Alguna pista?Máquina de desarrollo de acceso localhost a través de usb
de edición:
diferentes escenarios se agregó a dejar que todos a entender mejor:
1. basadas en emulador escenario:
- servidor Java estándar que se ejecuta en mi pc @localhost: 15000
- android java client ejecutándose en mi emulador.
Cuando la aplicación de Android necesita ponerse en contacto con el servidor utiliza 10.0.2.2:15000 como se especifica here. Todo funciona bien.
2. wifi escenario adecuado con dispositivo conectado física:
- servidor Java estándar que se ejecuta en mi pc @ 192.168.1.10: 15000.
- android java client ejecutándose en mi dispositivo con la dirección 192.168.1.11 asignada.
Cuando la aplicación de Android necesita ponerse en contacto con el servidor utiliza 192.168.1.10:15000 y todo funciona bien también.
3. escenario deseado:
- servidor Java estándar que se ejecuta en mi pc @localhost: 15000.
- android java cliente ejecutándose en mi dispositivo conectado mediante un cable usb. Ninguna red está activa.
Cuando la aplicación de Android necesita ponerse en contacto con el servidor, intenta conectarse a 10.0.2.2:15000 pero en su lugar se produce una excepción (Red inalcanzable). Parece que la dirección especial 10.0.2.2 funciona solo para instancias de emulador.
Me pregunto si en la suite adb/adt hay una forma de acceder a la dirección de la PC desde el dispositivo conectado mediante un cable usb. Espero que sea un poco más claro ahora. Gracias.
No uso ningún puerto que esté escuchando en mi dispositivo. El servidor está en mi máquina de desarrollo en su lugar. Por lo tanto, si IIRC, adb forward funciona de la manera opuesta (reenvío número de puertos de "escuchas") y este no es el caso. –
Sí, eso es lo que dije, no estaba seguro de que funcionar desde tu dispositivo a tu PC. Lo siento. – MrSnowflake
Esto puede funcionar con un túnel inverso al que el teléfono puede volver atrás. La mayoría de las instalaciones ssh soportarían eso nuestra de la caja. –