Android:在 Android 框架位置 API 上使用 FusedLocationProviderApi 的优缺点是啥?
Posted
技术标签:
【中文标题】Android:在 Android 框架位置 API 上使用 FusedLocationProviderApi 的优缺点是啥?【英文标题】:Android: What are the pros and cons of using FusedLocationProviderApi over Android framework location API?Android:在 Android 框架位置 API 上使用 FusedLocationProviderApi 的优缺点是什么? 【发布时间】:2016-06-04 23:20:54 【问题描述】:Here谷歌说:
Google Play 服务位置 API 优于 android 框架位置 API (android.location),可作为向您的应用添加位置感知的一种方式。如果您目前正在使用 Android 框架位置 API,强烈建议您尽快切换到 Google Play 服务位置 API。
谁能向我解释为什么(如果我)需要切换到新的 API?
【问题讨论】:
切换的原因之一是 Google Play 服务位置 API 比 Android 框架位置 API 更省电。 @ChintanSoni 我明白了,但有什么令人信服的理由不这样做吗?我正在努力做出决定,但出于某种原因我不想改回来。 有理由不这样做吗?如果您使用 FusedLocationPrividerApi,则需要提示用户在需要时升级 Google Play 服务。如果用户没有您的应用所需的版本,并且选择不升级,您的应用将无法获取任何位置信息。 【参考方案1】:我认为核心区别在于 FusedLocationProvider 同时使用物理传感器和 google play 服务,而其他(位置管理器/位置监听器)使用 gps 和网络等物理传感器。
FusedLocationProvider
FusedLocationProvider 结合使用硬件和 google play 服务,找到请求的上下文(位置)。
优点:
它可以在 gps 和基于 WiFi 的位置之间切换,从而提供更高的准确度和更少的电池消耗。
对您透明地优化。通过使用位置缓存避免繁重的处理。如果用户有许多位置感知应用程序,则不会浪费时间和资源来等待获取新位置并使用以前的位置。
Google Play 服务 3.2 包括对基于位置的服务的多项增强。 Fused Location Provider 现在支持在请求位置更新时选择低功耗模式选项,并能够注入模拟位置 — 让您可以在各种模拟条件下更有效地测试您的应用程序。blog
当希望节省电池电量并使用粗略更新时,FLP 不使用全球定位服务 (GPS),而是使用 WiFi 和基站信号。
Fused API 提供 3 个位置提供程序。
HIGH_ACCURACY 模式使用所有位置提供程序
BALANCED_POWER 模式排除 GPS
NO_POWER 模式使用来自其他应用的位置
缺点
-
位置管理器,使用 gps 虽然它需要电池但它在没有网络的情况下工作得很好。
室内准确度还是个问号,好像你在室内用的app准确度不好。
位置管理器速度慢,但使用 gps 准确,这是准确度和电池消耗之间的权衡。
如果您打算在 Amazon、F-Droid 或 Play 商店以外的任何地方发布它,请使用 LocationListener 或同时实现两者。有不少人不希望 Google 跟踪他们的一举一动
对我来说更准确的是位置管理器,因为它可以在所有平台上使用,不需要谷歌游戏商店。但这需要一些时间,并且位置检测速度取决于一些因素,例如您是否在空旷的地方,天气等
Related Material
【讨论】:
Fashia,很好的答案。您是否认为在您知道将仅少量连接到互联网的设备上使用FusedLocationProvider
是个好主意。例如,居住在农村地区的人。
我必须建议使用融合和 android 传感器位置的组合。因为如果应用程序不能完全履行承诺,那么用户就会卸载它,而无需询问原因。
如果您没有指定要使用的提供者(例如,只是一个高精度的标准),那么 LocationManager 可以返回提供者“融合”的位置。这不是 LocationManager 中的提供者常量之一...以上是关于Android:在 Android 框架位置 API 上使用 FusedLocationProviderApi 的优缺点是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Android之使用Volley框架在ListView中加载大量图片
Android最好使用AsyncTask、Service或其他