'Headless Android Emulator: GPS Location does not work even with setting Geo Fix
Summary: Entering geo fixes into the Emulator Console of a headless emulator does not set moc location data. Is there a workaround?
Steps to reproduce:
1) Start the emulator with the command
emulator -avd Pixel2API27 -no-window
2) Set the location data with command
telnet localhost 5554
auth <auth Token>
geo fix -121.45356 46.51119 4392
3) Get the location data
adb shell dumpsys location
Observed result:
Current Location Manager state:
Location Listeners:
Reciever[6ca7e93 listener UpdateRecord[passive com.google.android.gms(10013 foreground) Request[POWER_NONE passive fastest=0]]]
Reciever[f7aded0 listener UpdateRecord[passive android(1000 foreground) Request[POWER_NONE passive fastest=+30m0s0ms]]]
Reciever[c146ec9 listener UpdateRecord[passive android(1000 foreground) Request[POWER_NONE passive fastest=0]]]
Reciever[6ea99ce listener UpdateRecord[passive com.google.android.gms(10013 foreground) Request[POWER_NONE passive fastest=0]]]
Active Records by Provider:
passive:
UpdateRecord[passive android(1000 foreground) Request[POWER_NONE passive fastest=0]]
UpdateRecord[passive android(1000 foreground) Request[POWER_NONE passive fastest=+30m0s0ms]]
UpdateRecord[passive com.google.android.gms(10013 foreground) Request[POWER_NONE passive fastest=0]]
UpdateRecord[passive com.google.android.gms(10013 foreground) Request[POWER_NONE passive fastest=0]]
Overlay Provider Packages:
network: com.google.android.gms
fused: com.google.android.gms
Historical Records by Provider:
android: passive: Min interval 0 seconds: Max interval 1800 seconds: Duration requested 1 out of the last 1 minutes: Currently active
com.google.android.gms: passive: Interval 0 seconds: Duration requested 0 out of the last 0 minutes: Currently active
Last Known Locations:
Last Known Locations Coarse Intervals:
Geofences:
Enabled Providers:
fused
passive
mWhitelist=[] mBlacklist=[]
Throttling Whitelisted Packages:
com.google.android.gms
fudger: offset: -83, 431 (meters)
passive Internal State:
mReportLocation=true
gps Internal State:
mStarted=false
mFixInterval=1000
mDisableGps (battery saver mode)=false
mEngineCapabilities=0x0 ( )
GNSS_KPI_START
KPI logging start time: +11s943ms
KPI logging end time: +1m18s661ms
Number of location reports: 0
Number of TTFF reports: 0
Number of position accuracy reports: 0
Number of CN0 reports: 0
GNSS_KPI_END
native internal state: Gnss Debug Interface not available
network Internal State (com.google.android.gms):
REMOTE SERVICE name=network pkg=com.google.android.gms version=2
fused Internal State (com.google.android.gms):
REMOTE SERVICE name=fused pkg=com.google.android.gms version=1
Note: As you can see Last Known Locations: is empty
Anyone have ideas?
Solution 1:[1]
A bit late to the party, but I was facing this same issue and found a solution. I added the -no-passive-gps parameter and now my headless emulator gets location updates.
Examlple:
emulator -avd Pixel6 -no-snapshot -no-boot-anim -no-audio -no-window -delay-adb -no-passive-gps
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | tepe |