android - headless 安卓模拟器 : GPS Location does not work even with setting Geo Fix

标签 android testing geolocation android-emulator

总结:将地理定位输入 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/

相关文章:

Android如何批量获取位置更新

php - 如何根据国家IP地址重定向域

javascript - 如何将字符串转换为 React 组件

Android WebView 背景颜色

Android GPS networkProvider 不工作

python - 使用Webtest 和/或nose 测试cherrypy WSGI 应用程序?

jquery - cucumber 测试网页的背景颜色

android - Proguard 混淆使我的应用程序崩溃

android - 我们用Fragments的时候用Fragment Activity?

testing - 使用 Cypress 重定向