Android:MyLocationOverlay仅使用GPS 是否有可能告诉我们,它应该只考虑GPS作为代码>位置提供者< /代码>?

Android:MyLocationOverlay仅使用GPS 是否有可能告诉我们,它应该只考虑GPS作为代码>位置提供者< /代码>?,android,gps,Android,Gps,参考说明是:enableMyLocation()=>尝试启用MyLocation,从LocationManager.GPS\u提供者和LocationManager.NETWORK\u提供者注册更新 但我只需要GPS\u提供商。 有什么提示吗?据我所知,没有关闭此功能的方法。但是,您可以: 覆盖onLocationChanged并查看location.getProvider(),忽略不是来自GPS的更新-尽管我猜这仍然会从网络提供商那里提取您的位置(如果需要) MyLocationOverlay

参考说明是:
enableMyLocation()
=>尝试启用
MyLocation
,从
LocationManager.GPS\u提供者
LocationManager.NETWORK\u提供者
注册更新

但我只需要
GPS\u提供商

有什么提示吗?

据我所知,没有关闭此功能的方法。但是,您可以:

  • 覆盖onLocationChanged并查看location.getProvider(),忽略不是来自GPS的更新-尽管我猜这仍然会从网络提供商那里提取您的位置(如果需要)
  • MyLocationOverlay实现了LocationListener,这意味着enableLocation可能会通过location manager自己请求更新—您可以用自己的来调用requestLocationUpdates。然而,谷歌地图不是开源的,所以可能会有一些标志或者类似的东西,使得enableLocation也会更新。。如果你知道它做了什么,你可能会用反射复制它
  • 使用“关闭”网络提供商,需要在设备上启用模拟位置权限+该选项

  • 好的,谢谢。因此,最好的解决方案可能不是使用MyLocationOverlay类,而是使用LocationListener自己实现所有功能。事实上,我只是想使用MyLocationOverlay,因为它看起来像一个“快速”的解决方案。这是一个非常快速的解决方案,但是为什么你不想要网络提供商呢?它将比GPS更快地返回定位,并且当GPS进入时,它将更新到更精确的位置(我猜在某些情况下,网络可能比GPS更精确…)