2011-09-16 24 views
6

Estoy tratando de escribir mi propio servidor http de Android. Está bastante bien, pero tengo un problema con mi AVD. No deseo descargar mi aplicación al teléfono cada vez que deseo probar los cambios. Me gustaría conectarme a mi aplicación a través de AVD. Para obtener la dirección IP que estoy usando esta función:Cómo conectar a AVD

private String getLocalIpAddress() { 


     try { 
      for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { 
       NetworkInterface intf = en.nextElement(); 
       for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { 
        InetAddress inetAddress = enumIpAddr.nextElement(); 
        if (!inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress().toString(); } 
       } 
      } 
     } catch (SocketException ex) { 
      Log.e("ServerActivity", ex.toString()); 
     } 
     return null; 
    } 

en mi teléfono todo funciona bien, pero cuando ejecuto mi aplicación de AVD se nota IP: 10.0.2.15 y yo soy incapaz de conectar lo. ¿Hay alguna forma de conectarse a mi aplicación que se ejecuta en AVD? Si no importa mi aplicación usa el puerto 8080.

+0

Parece problema de cortafuegos. – doNotCheckMyBlog

Respuesta

0

Aunque no conozco la respuesta a su problema directamente, sé que al conectar DESDE un AVD a su computadora, debe usar 10.0.2.2 porque su AVD está esencialmente detrás de otro "enrutador". No obtiene una LAN lan local de su enrutador. Consulte la pregunta this para obtener más información. De this enlace, cita:

Cada instancia del emulador corre detrás de un servicio virtual router/firewall que lo aísla de la red de su máquina de desarrollo interfaces y configuraciones y desde internet. Un dispositivo emulado puede no 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.

6

Telnet en el dispositivo (si se asume que está en el puerto 5554):

telnet localhost 5554

En el indicador de la consola Android utilizar un redireccionamiento:

redir añadir tcp: 8080: 8080

Apunte su navegador a 'http://127.0.0.1:8080/' ahora debe enviar y recibir a la AVD.

Cortesía de: http://www.rhill.co.uk/?p=35

+0

No está claro, de dónde debe venir el comando 'redir', no está presente en las últimas imágenes. –