首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与LocationManager相比,使用LocationManager有什么优势吗?

与LocationManager相比,使用LocationManager有什么优势吗?
EN

Stack Overflow用户
提问于 2015-05-09 20:07:08
回答 3查看 7.1K关注 0票数 16

之前,为了获取用户当前位置,我使用了LocationManager:

代码语言:javascript
复制
LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);

if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
    location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

} else if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
    location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}

这是容易阅读和非常简单的代码。

但我注意到谷歌最近发布了Google服务中的新客户端API模型,并建议使用看起来复杂得多的FusedLocationProviderApi,它是异步的,需要处理回调等等。

与LocationManager相比,使用LocationManager有什么优势吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-05-09 20:51:00

FusedLocationProvider使用混合硬件根据请求的上下文确定位置,这意味着它对您来说是优化的。它还将缓存应用程序之间捕获的位置,以避免不必要的工作来确定位置信息。因此,如果用户有各种各样的位置感知应用程序,他们可能会避免对设备征税(并等待)位置捕获,因为用户可能已经缓存了位置捕获。

虽然ol‘LocationManager在小的一次性情况下就足够了,但是您肯定应该考虑更新的替代方案,因为好处可能很大,而且易于实现。

你可以使用它,就像Google服务在不同设备上定期更新一样,并且不断地包括对基于位置的功能的改进(以及更多)。

发布时对FusedLocationProvider的解释的链接:GHuxUGc

票数 16
EN

Stack Overflow用户

发布于 2015-10-10 13:17:33

在某些情况下,FusedLocationProvider执行得很糟糕。例如,如果您想在地图上跟踪您的路径,它可能决定在GPS数据和Wifi数据之间切换。要计算出准确的行程距离,最好是使用LocationManager来强制进行GPS读数,特别是如果您还想跟踪无线网络所不提供的高度的话。

票数 3
EN

Stack Overflow用户

发布于 2017-06-29 21:36:47

请记住,FusedLocationProvider使用LocationManager作为掩护,至少可以获得GPS点。它可能正在执行Wifi扫描,并对结果进行查找以确定位置,而不是使用Network,但我不知道这方面的任何文档。

除非您不能或不想使用FusedLocationProvider,否则我建议您使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30144480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档