在 Android 中使用 LocationManager 优先于提供者

Posted

技术标签:

【中文标题】在 Android 中使用 LocationManager 优先于提供者【英文标题】:Using LocationManager in Android with priority over providers 【发布时间】:2012-06-21 23:26:20 【问题描述】:

我以前使用过 LocationManager,结果很好。此外,code.google.com 上有很多项目,其中包含一些不错的代码 sn-ps。

请求:

在城市中追踪汽车

我有什么

一个 minDistance 用于初始化提供程序 最大精度 首先使用网络位置提供程序

我是怎么想的

嗯,主要的要求,因为汽车总是在一个城市区域,是使用网络位置。既是因为电池的使用,也是因为城市中相当高的准确度。

但是,如果从网络提供商处检索到的位置精度超过限制,则需要启动 GPS 以读取位置。有趣的部分从这里开始,还有一些不清楚的地方。

我看到有两种可能的方式:

    每次网络定位精度超过限制时,启用 GPS 更新和第一次定位,删除更新并再次与网络提供商联系。

    启用 GPS 更新并保持 GPS 开启一段时间(如 10 分钟)以与网络并行工作并在两者之间进行选择,哪个位置更准确。这可能很难实现,因为读数是独立的。

我想知道在检索到位置后禁用 GPS 的情况下,在电池和锁定时间方面如何再次启用它。基本上,拥有一次锁会有助于更快地获得新的锁吗?一遍又一遍地启用/禁用会比一直打开 GPS 消耗更多的电量?

难道没有一个选项只是“现在给我最好的位置,独立于供应商”

【问题讨论】:

【参考方案1】:

这是最好的post,关于您想要做什么,它使用启用的提供程序,然后从他们那里获得最好的提供程序。

【讨论】:

以上是关于在 Android 中使用 LocationManager 优先于提供者的主要内容,如果未能解决你的问题,请参考以下文章

iOS 地理位置未更新

位置权限检查和授权

删除 Mock GPS Provider 不会恢复 Real GPS

如何提示用户打开位置?

为啥我无法为注释的字幕设置 pin 地址?

何时在 Android 中使用 RxJava,何时使用 Android 架构组件中的 LiveData?