http://10.0.2.2 funciona en el emulador de Android, pero no en el dispositivo Android utilizado como emulador

Conecté mi dispositivo Android a través de USB para usarlo como un emulador, si tengo acceso a la URL del emulador de eclipse funciona, pero lo mismo si tengo acceso desde el dispositivo como emulador, da error de tiempo de espera de conexión.

¿Hay alguna configuración que deba cambiar para esto? o hay alguna solucion posible para esto?

Gracias

Esto es lo que tuve que hacer para que el dispositivo recoja una instancia de servicio local en mi PC con Windows ejecutando localhost.

  • Encienda WiFi en mi dispositivo y conéctese a la red inalámbrica.
  • Ejecute ipconfig en el símbolo del sistema.
  • Usar la dirección IPv4 para mi conexión de área local del adaptador Ethernet (ya que estoy conectado a través de ethernet)
  • Cambia la url base en la aplicación de Android para usar esa dirección

Luego, mi aplicación de Android pudo conectarse a la instancia de servicio local a través de esa dirección IP en lugar de 10.0.2.2, que funciona cuando ejecuta la aplicación en el emulador. Si uno estaba tan inclinado, podría extraer esas URL y comprobar si la aplicación se estaba ejecutando en el emulador o el dispositivo, y luego establecer la dirección IP de manera apropiada en el código. Espero que esto ayude.

Editar en relación con la extracción de URL anterior: creé un archivo ApplicationName.java y declare esta variable:

public static String ANDROID_DEVICE_ID = ""; 

Luego establece esa variable en mi actividad inicial:

 ApplicationName.ANDROID_DEVICE_ID = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID); 

Luego copio el ID del dispositivo pegado, y en mi clase de API que realiza las llamadas al servicio web tengo el siguiente código:

 private String getCategoriesUrl() { // TODO: Remove before production if (AgoraApplication.ANDROID_DEVICE_ID.equals("deviceIdString")) { _categoriesUrl = _deviceIp + _categoriesUrlSuffix; } else { _categoriesUrl = _emulatorIp + _categoriesUrlSuffix; } return _categoriesUrl; } 

Entonces, cuando estoy depurando en cualquier dispositivo o emulador, mi aplicación usa automáticamente la dirección IP apropiada para las llamadas de servicio.

Estás suponiendo aquí que al dispositivo le gusta un emulador. Definitivamente ejecuta su aplicación de forma independiente, sin emular ni simular. Tendrá que ajustar la dirección IP a la dirección IP de su computadora que el teléfono puede ver desde su red, celular o Wifi.