2010-06-09 28 views
11

Me gustaría acceder a un servicio web proporcionado por una de las máquinas de mi LAN desde el emulador de Android.¿Hay alguna manera fácil de configurar el emulador de Android para acceder a la LAN de la máquina host?

Si el servicio se ejecutaba en la misma máquina donde se ejecuta el emulador (llamado host), podría agregar una redirección de red y acceder a la 10.0.2.2 (interfaz de loopback del host en el emulador) con el puerto correcto.

Sin embargo, se está ejecutando en otra máquina en la LAN. Supongo que podría agregar otra redirección en el host además de la anterior (tendría que pelear con iptables ...), pero ¿existe una solución más simple?

Respuesta

5

Bueno, simplemente funciona (TM).

En el manual del emulador de Android que había leído antes de la prueba (trato de RTFM antes de hacer las cosas) así se haga constar:

Cada instancia del emulador corre detrás de un servicio de firewall/router virtual que lo aísla desde las interfaces y configuraciones de red de su máquina de desarrollo y desde Internet. Un dispositivo emulado no puede ver su máquina de desarrollo u otras instancias de emulador en la red. En cambio, solo ve que está conectado a través de Ethernet a un enrutador/firewall.

Esto me hizo pensar que no podía acceder a mi LAN. Estaba equivocado, simplemente agregando el IP del servidor en mi LAN me permitió acceder desde el emulador.

+11

¿Cómo hiciste esto más específicamente? Esto no tiene ningún sentido para mí ... – Dediqated

+2

@Dediqated: creo que Longfield simplemente significa que puede apuntar a las máquinas en la LAN por su dirección IP normal desde el emulador. Sin embargo, en la práctica existen limitaciones, declaradas [aquí] (http://developer.android.com/tools/devices/emulator.html#networkinglimitations); en particular: los cortafuegos (programa en el host o en el dispositivo al que está conectado el host) pueden interferir, IGMP y la multidifusión actualmente no son compatibles. – mklement0

0

Puede obtener un dispositivo Android real y conectarlo a la LAN (he hecho esto).

¿Cómo se está conectando a la máquina host? a través de html? porque si su aplicación requiere una conexión de línea dura a la máquina, entonces no es una muy buena solución para un dispositivo móvil .

+0

si su html no veo un problema. – mtmurdock

+0

Sí, ya lo he probado con mi dispositivo Android y funciona. Sin embargo, sería bueno poder hacerlo con el emulador también. ¿Qué quiere decir con línea dura? No es html, pero una interfaz de comandos del cliente en TCP, es bastante similar. – Longfield

Cuestiones relacionadas