How can I access my localhost from my Android device?


Question

I'm able to access my laptop web server using the Android emulator, I'm using 10.0.2.2:portno works well.

But when I connect my real Android phone, the phone browser can't connect to the same web server on my laptop. The phone is connected to the laptop using a USB cable. If I run the adb devices command, I can see my phone.

What am I missing?

1
459
7/3/2017 1:55:54 AM

Accepted Answer

USB doesn't provide network to mobile device.

If both your desktop and phone are connected to the same WiFi (or any other local network), then use your desktop IP address assigned by the router (not localhost and not 127.0.0.1).

To find out the IP address of your desktop:

  • type into the command line ipconfig (Windows) or ifconfig (Unix)
    • on Linux the one-liner ifconfig | grep "inet " | grep -v 127.0.0.1 will yield only the important stuff
    • there's a bunch of suggestions on how to have a similar output on Windows
  • there's going to be a bunch of IP's
  • try all of them (except the forementioned localhost and 127.0.0.1)

If your phone is connected to the mobile network, then things are going to be harder.

Either go hardcore:

  • first find out your router external IP address (https://www.google.de/search?q=myip)
  • then, on the router, forward some port to <your desktop IP>:<server port number>
  • finally use the external IP address and forwarded port

Otherwise use something like xip.io or ngrok.

329
7/23/2018 3:13:37 PM

It is actually quite simple.

  • Turn on WiFi Hotspot of your Android phone/router and connect your Laptop to your phone
  • Start your server at localhost (I am using WAMP server for Windows)
  • Now open the command prompt and enter
ipconfig

Once you've done that, you will see something like the following:

Wireless LAN adapter Wireless Network Connection:
  Connection-specific DNS Suffix  . :
  Link-local IPv6 Address . . . . . : fe80::80bc:e378:19ab:e448%11
  IPv4 Address. . . . . . . . . . . : 192.168.43.76
  Subnet Mask . . . . . . . . . . . : 255.255.255.0
  Default Gateway . . . . . . . . . : 192.168.43.1
  • Copy the IPv4 Address (in this case, it is 192.168.43.76)
  • In your mobile browser, simply paste the IPv4 Address

Note: Please set your network as "Home Network". Setting the network as Home Network means that you are allowing your PC to share stuff with other devices on the same network.

If you are using Windows 10, this can be done with the following:

  • Open Settings
  • Go to Network & Internet
  • Select WiFi in the left menu
  • Tap on the name of the connected WiFi
  • Set the Network Profile of the network to be Private

If you are having an issue, it is most likely to do with Windows Firewall.

  • Open Control Panel
  • Go to Windows Defender Firewall
  • Tap on Allow an app or feature through Windows Defender Firewall
  • Check whether the app is enabled for Private networks (there should be a tick)
  • If it is not enabled, tap Change settings and tick the checkbox under Private for the app

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon