Emulator's Location simulation not working

I would like to lower the minimum API level of my application to 4.4(KitKat) from 5.0(Lollipop)

Sadly I couldn't get any real devices so I have to work with an emulator.

My app is heavily based on user's location so the main testing must be target the location changing feature.

I try to use location simulation with the official Google Android Emulator. (x86)

I have made a 4.4 Emulator and is working fine, my app works fine but when I try to send locations via the Extended control panel nothing happens.

If I load a GPX file the locations appear on the table of the extended control panel inside the GPS data playback but the device does not get any locations.

enter image description here

I fill the lat and longitude click on "SEND" but nothing happens.

I have also tried to simulate location changing from the Android Device Monitor's "Emulator Control" tab

The "Send" button is not clickable at all, the long and lat fields are disabled and I cannot fill anything. The "GPX" and "KML" tabs are also disabled.

enter image description here

I have also tried to use the Gps Emulator plugin as the following:

enter image description here

The progress bar do increases, so not like the first 2 methods I have tried this is finally looks like actually doing something but the emulator still not getting the location changes. Not at all.

I have tried a fourth method via command line:

telnet localhost 5554

But I have Connection refused error message.

So I cannot try to send locations via:

geo fix <longitude value> <latitude value>

(Telnet is enabled on my Windows)


Solution 1:

I had the same problem, but I managed to fix it.

Run Google Maps and accept confirmations at least once until you see the map. Do not forget to set your location setting to ON/High accuracy, as shown in the screenshot below.

Google Maps Settings

Solution 2:

I had the same problem with the SDK Tools version 25.1.7. I've updated them to 25.2 rc1 and it now works.

Beware that you cannot install the RC version from Android Studio. You have to launch the separate Android SDK Manager to see it.

Android SDk Manager with RC android SDK tools

Relaunch the emulator and check that you are indeed using the latest version in the Help/About screen of the Extended Controls windows.

Extended controls window

Solution 3:

Using OS X and Android Studio, had the same problem and what worked for me was: going to the actual phone (emulator) Settings, Location, and turning off the location and turning it back on. Tested again, and started working.

I think it doesn't matter that much, but the Emulator version: 26.0.3-3965150.

Solution 4:

In my case, the reason was location settings in phone settings set on "Battery saving". Switched it to "High accuracy" and it worked.