总结:将地理定位输入 headless 模拟器的模拟器控制台不会设置 moc 位置数据。有解决方法吗?
重现步骤:
1)使用命令启动模拟器
emulator -avd Pixel2API27 -no-window
2)通过命令设置位置数据
telnet localhost 5554
auth <auth Token>
geo fix -121.45356 46.51119 4392
3)获取位置数据
adb shell dumpsys location
观察结果:
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
注意:如您所见,Last Known Locations: 为空
有人有想法吗?
最佳答案
晚会有点晚了,但我遇到了同样的问题并找到了解决方案。 我添加了 -no-passive-gps 参数,现在我的 headless 模拟器获取位置更新。
示例:
emulator -avd Pixel6 -no-snapshot -no-boot-anim -no-audio -no-window -delay-adb -no-passive-gps
关于android - headless 安卓模拟器 : GPS Location does not work even with setting Geo Fix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51751859/