【问题标题】:Android: What are the pros and cons of using FusedLocationProviderApi over Android framework location API?Android:在 Android 框架位置 API 上使用 FusedLocationProviderApi 的优缺点是什么?
【发布时间】:2023-03-18 13:45:01
【问题描述】:

Here谷歌说:

Google Play 服务位置 API 优于 Android 框架位置 API (android.location),可作为向您的应用添加位置感知的一种方式。如果您目前正在使用 Android 框架位置 API,强烈建议您尽快切换到 Google Play 服务位置 API。

谁能向我解释为什么(如果我)需要切换到新的 API?

【问题讨论】:

  • 切换的原因之一是 Google Play 服务位置 API 比 Android 框架位置 API 更省电。
  • @ChintanSoni 我明白了,但有什么令人信服的理由不这样做吗?我正在努力做出决定,但出于某种原因我不想改回来。
  • 有理由不这样做吗?如果您使用 FusedLocationPrividerApi,则需要提示用户在需要时升级 Google Play 服务。如果用户没有您的应用所需的版本,并且选择不升级,您的应用将无法获取任何位置信息。

标签: android google-play-services


【解决方案1】:

我认为核心区别在于 FusedLocationProvider 同时使用物理传感器和 google play 服务,而其他(位置管理器/位置监听器)使用 gps 和网络等物理传感器。

FusedLocationProvider

FusedLocationProvider 结合使用硬件和 google play 服务,找到请求的上下文(位置)。

优点:

  1. 它可以在 gps 和基于 WiFi 的位置之间切换,从而提供更高的准确度和更少的电池消耗。

  2. 对您透明地优化。通过使用位置缓存避免繁重的处理。如果用户有许多位置感知应用程序,则不会浪费时间和资源来等待获取新位置并使用以前的位置。

  3. Google Play 服务 3.2 包括对基于位置的服务的多项增强。 Fused Location Provider 现在支持在请求位置更新时选择低功耗模式选项,并能够注入模拟位置 — 让您可以在各种模拟条件下更有效地测试您的应用程序。blog

  4. 当希望节省电池电量并使用粗略更新时,FLP 不使用全球定位服务 (GPS),而是使用 WiFi 和基站信号。

  5. Fused API 提供 3 个位置提供程序。

HIGH_ACCURACY 模式使用所有位置提供程序

BALANCED_POWER 模式排除 GPS

NO_POWER 模式使用来自其他应用的位置

缺点

  1. 位置管理器,使用 gps 虽然它需要电池但它在没有网络的情况下工作得很好。
  2. 室内准确度还是个问号,好像你在室内用的app准确度不好。
  3. 位置管理器速度慢,但使用 gps 准确,这是准确度和电池消耗之间的权衡。

  4. 如果您打算在 Amazon、F-Droid 或 Play 商店以外的任何地方发布它,请使用 LocationListener 或同时实现两者。有不少人不希望 Google 跟踪他们的一举一动

对我来说更准确的是位置管理器,因为它可以在所有平台上使用,不需要谷歌游戏商店。但这需要一些时间,并且位置检测速度取决于一些因素,例如您是否在空旷的地方,天气等

Related Material

【讨论】:

  • Fashia,很好的答案。您是否认为在您知道将仅少量连接到互联网的设备上使用FusedLocationProvider 是个好主意。例如,居住在农村地区的人。
  • 我必须建议使用融合和 android 传感器位置的组合。因为如果应用程序不能完全履行承诺,那么用户就会卸载它,而无需询问原因。
  • 如果您没有指定要使用的提供者(例如,只是一个高精度的标准),那么 LocationManager 可以返回提供者“融合”的位置。这不是 LocationManager 中的提供者常量之一...
猜你喜欢
  • 2017-05-10
  • 1970-01-01
  • 1970-01-01
  • 2017-07-26
  • 2012-05-01
  • 2011-05-31
  • 1970-01-01
  • 2017-05-18
  • 1970-01-01
相关资源
最近更新 更多