是否可以使用 Google 的新融合位置提供程序模拟位置?
Posted
技术标签:
【中文标题】是否可以使用 Google 的新融合位置提供程序模拟位置?【英文标题】:Is possible to mock locations with Google's new fused location provider? 【发布时间】:2013-09-26 09:22:30 【问题描述】:是否可以让 FakeGPS 等应用程序与新的融合位置提供程序(Google Play 服务)一起使用?
我认为这是问题所在:
09-20 17:18:41.842 21753-21809/? W/LocationManager﹕ java.lang.IllegalArgumentException: Incomplete location object, missing timestamp or accuracy? Location[gps 32.899542,-100.165065 acc=1 et=?!? alt=65.0]
at android.location.LocationManager.setTestProviderLocation(LocationManager.java:1218)
at com.lexa.fakegps.FakeGPSProvider.run(FakeGPSProvider.java:75)
【问题讨论】:
我认为此类应用需要更新以支持将模拟位置提供给LocationClient
via setMockMode()
和 setMockLocation()
。
【参考方案1】:
Fused Location Provider 只能使用 setMockMode() 和 setMockLocation() 提供的模拟位置。调用 android.location.LocationManager.setTestProviderLocation() 对 Fused Location Provider 生成的位置没有影响。
尽管 FakeGPS 不会为 Fused Location Provider 做任何事情,但新的 Mock Locations Android 培训课程:Testing Using Mock Locations 包含一个示例应用,可将模拟位置注入 Fused Location Provider。
【讨论】:
注意:“使用模拟位置进行测试”使用已弃用的类 LocationClient。 “使用模拟位置进行测试包括一个将模拟位置注入 Fused Location Provider 的示例应用程序。”在哪里? 他们改变了 API。 Fused Location Provider 是 Google Play 服务的一部分。随时可能发生变化!我编写的原始文档已被删除,这让我相信他们(再次)改变了一切。以上是关于是否可以使用 Google 的新融合位置提供程序模拟位置?的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序和设备中的 Google Play 服务不同时,使用融合位置获取 CurrentLocation 0
使用 Google Play 服务我可以在离线模式下获取最新位置吗(FusedLocationProvider Api)