Acceder a localhost de PC desde un dispositivo móvil Android conectado por USB

Tengo un dispositivo Android (pestaña Samsung Galaxy) conectado a mi PC a través de USB.

Quiero usar WebServices y ejecutar una página web que se encuentra en mi servidor xampp local de mi PC en mi dispositivo Android.

Puedo lograrlo si tengo ambos, mi PC y dispositivo Android, conectados en la misma red inalámbrica.

Sin embargo, es posible acceder a la página localhost sin ninguna conexión inalámbrica, usando solo conexión USB.

(PD: este mismo escenario funciona cuando ejecuto la aplicación en un emulador y uso la ip 10.0.2.2 para acceder al localhost en mi PC)

Finalmente resolví este problema. Utilicé Samsung Galaxy S con Froyo. El “puerto” a continuación es el mismo puerto que usa para el emulador (10.0.2.2:port). Lo que hice:

  1. primero conecte su dispositivo real con el cable USB (asegúrese de que puede cargar la aplicación en su dispositivo)
  2. obtener la dirección IP del dispositivo que se conecta, que comienza con 192.168.xx: puerto
  3. abra el “Centro de redes y recursos compartidos”
  4. haga clic en “Conexión de área local” desde el dispositivo y seleccione “Detalles”
  5. copie la “dirección IPv4” a su aplicación y reemplácela como: http://192.168.xx:port/test.php
  6. carga tu aplicación (nuevamente) a tu dispositivo real
  7. ve a propiedades y activa “Anclaje a red USB”
  8. ejecuta tu aplicación en el dispositivo

Debería funcionar ahora.

He leído numerosos foros y probado aplicaciones de juegos, pero no he encontrado una solución hasta ahora.

Creo que mi escenario es similar al tuyo, pero aclararé para ayudar a otros. Tengo un sitio web alojado localmente y servicios web para ser utilizado por mi aplicación de Android. Necesito tener esto trabajando en el camino para la demostración con solo mi computadora portátil y sin conexión a la red.

Nota: Usar mi iPhone como punto de conexión wifi y conectar mi PC y mi dispositivo Android funcionó, pero la conexión de iPhone 4S es lenta y se abandona regularmente.

Mi solución es la siguiente:

  • Desconecte los cables de red en la PC y apague el wifi.
  • Desactivar wifi en un dispositivo Android
  • Conecte Android a la PC a través de USB
  • Encienda “USB Tethering” en el menú de Android. (En redes-> más …-> Anclaje a red y zona portátil “)
  • Obtenga la IP de su computadora que ha sido asignada por el cable de sujeción USB. (abra el símbolo del sistema y escriba “ipconfig” y luego busque la IP que el adaptador de red USB le asignó)
  • Abra un navegador en la PC usando la dirección IP encontrada en lugar de localhost para probar. es decir, http://192.168.1.1/myWebSite
  • Abre un navegador en el Android y prueba que funciona

Aquí hay una parte del código de mi aplicación para Android:

Esta aplicación es capaz de comunicarse con un modelo HTTP get-post entre un servlet que se ejecuta en un servidor y un dispositivo Android conectado al modo USB-Debuggable ( porque la aplicación estaba en desarrollo ).

También puedo ejecutar la aplicación a través de Wi-Fi cuando el servidor, Tomcat Apache 7, se ejecuta ( cuando finalizó el desarrollo de la aplicación ).

enter image description here

Para obtener la dirección IP de usted

  1. Ir al símbolo del sistema
  2. Escriba ipconfig
  3. Presione enter

En la lista, la dirección IPv4 es su IP.

¡Lo hice en una computadora con Windows y funcionó perfectamente!

Encienda USB Tethering en su dispositivo móvil. Escriba ipconfig en el símbolo del sistema de su computadora y busque ipv4 para “conexión de área local del adaptador de ethernet x” (principalmente la primera) Vaya a su navegador móvil, escriba ese ipv4 con el número de puerto de su aplicación web. por ejemplo: – 192.168.40.142:1342

¡Funcionó con esos pasos simples!

Conexión de un teléfono Android a través de un cable USB y acceso al servidor http en la computadora.

  1. Cortafuegos: apáguelo, una vez que todo funcione, puede agregar una regla bajo Reglas entrantes, habilitar el servidor Apache HTTP (UDP y TCP) (o el servidor HTTP que esté utilizando) Advertencia: si apaga el firewall, su computadora se vuelve vulnerable a los ataques de internet. Así que apague Internet y desconéctese de la red primero.
  2. Enchufe el cable USB. Si aparece una ventana de red, seleccione Red doméstica. Si no aparece, probablemente esté configurado como Público (lo que no funcionará), por lo tanto, vaya a: Panel de control \ Red e Internet \ Centro de redes y recursos compartidos (en win7) y configúrelo en Red doméstica allí. Podría darle una próxima pantalla después de presionarla para compartir Imágenes, Música … simplemente haga clic en cancelar en ella. En la pantalla principal, la red doméstica seguirá estando activa.
  3. Necesita la IP de la computadora, el localhost u otros alias que no funcionan. Para obtener la IP, en el símbolo del sistema de Windows, escriba ipconfig y busque la dirección IPv4. . . . . . . . . . . : 192.168. ###. ### Esa es la IP que su teléfono le dio a su computadora
  4. Ahora debe hacer, en el navegador del teléfono, intente acceder a un archivo html de prueba desde el servidor de su computadora, debería mostrar bien.

    Para los desarrolladores de Android, ahora en su código de Android, debe usar “http: //”; de lo contrario, no funcionará. Por ejemplo: MyAsyncTask.execute (“http://192.168.123.123/test.html”)

Parte II – Configuración de IP a fijo / estático.

Ahora que las cosas funcionan, cada vez que desenchufe el cable y lo vuelva a enchufar, su IP cambiará. Y si lo está usando en algún lugar como dentro de un código, ¡tendrá que actualizarlo todo el tiempo! La solución que he encontrado es establecer la IP en estática.

  1. Con el teléfono conectado y conectado, vuelva al Centro de redes y recursos compartidos y haga clic en Conexión de área local “Conexiones”.

captura de pantalla

  1. En la siguiente pantalla, seleccione Propiedades, luego resalte IP 4 y presione propiedades allí y haga clic en “Usar la siguiente dirección IP”
  2. Coloque la puerta de enlace predeterminada y la máscara de subred exactamente como estaba en el ipconfig, y para la dirección IP, solo cambie los últimos 3 dígitos a cualquier valor entre 1 y 255

captura de pantalla

Esa IP será su nueva IP fija / estática y seguirá siendo la misma la próxima vez que conecte el teléfono.

Compruebe las opciones de tipo de conexión USB. Debería tener uno llamado “paso de Internet”. Eso permitirá que su teléfono use la misma conexión que su PC.

Me gustó mucho la respuesta de John, pero me gustaría darle algunos cambios a aquellos que quieran probar la configuración de // cliente servidor ejecutando un cliente TCP en el dispositivo móvil conectado a USB y un servidor en la PC local.

En primer lugar, es bastante obvio que el 10.0.2.2 no funcionará porque se trata de un móvil de hardware REAL y no de un simulador.

Entonces sigue las instrucciones de John:

  • Desconecte todos los cables de red en la PC y apague el wifi.
  • Desactivar wifi en el dispositivo Android
  • Conecte el dispositivo Android a la PC a través de USB
  • Encienda el “USB Tethering” (USB Modem / USB Cellular Modem / USB שימוש כמודם סלולרי) en el menú de Android. (En redes-> más …-> Anclaje a red y zona portátil “)

    • Esta conexión USB actuará como un servidor DHCP para una sola conexión de PC, por lo que le asignará a su PC una IP dedicada (dinámica) en su red USB local. Ahora todo lo que tiene que hacer es decirle a la aplicación cliente esta IP y puerto.
  • Obtenga la IP de su PC (que ha sido asignada por el cable de conexión USB) (abra el símbolo del sistema y escriba “ipconfig” luego busque la IP que el adaptador de red USB le ha asignado, en Linux su ifconfig o la “Información de conexión” de Ubuntu) etc.)

  • Indique a la aplicación que se conecte a esa IP (es decir, 192.168.42.87) con algo así como (Java – lado del cliente):

     String serverIP = "192.168.42.87"; int serverPort = 5544; InetAddress serverAddress = InetAddress.getByName(serverIP); Socket socket = new Socket(serverAddress, serverPort); ... 

    Disfrutar..