代码之家  ›  专栏  ›  技术社区  ›  Alexander Suraphel

Android:在Android框架位置API上使用FusedLocationProviderApi有哪些利弊?

  •  2
  • Alexander Suraphel  · 技术社区  · 10 年前

    Here 谷歌表示:

    Google Play服务的位置API比Android框架的位置API(Android.location)更受欢迎,这是一种向应用程序添加位置感知的方式。如果您当前正在使用Android框架位置API,强烈建议您尽快切换到Google Play服务位置API。

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

    1 回复  |  直到 10 年前
        1
  •  5
  •   Community Mohan Dere    9 年前

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

    融合位置提供程序

    FusedLocationProvider使用硬件和googleplay服务的组合来查找请求的上下文(位置)。

    赞成的意见:

    1. 当它在gps和基于WiFi的定位之间切换时,它提供了更好的精度和更少的电池消耗。

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

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

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

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

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

    BALANCED_POWER模式不包括gps

    NO_POWER模式使用其他应用程序的位置

    欺骗

    1. 位置管理器,使用gps,虽然它需要电池,但它的工作很好,没有网络。
    2. 室内准确性仍然是一个问号,就好像你在室内使用应用程序的准确性并不好。
    3. 使用gps,位置管理器速度慢,但精度高,这是在精度和电池消耗之间的权衡。

    4. 如果您计划在亚马逊、F-Droid或Play Store以外的任何其他平台上发布它,请使用LocationListener或同时实现两者。有相当多的人不希望谷歌追踪他们的一举一动

    对我来说,更准确的是位置管理器,因为它在所有平台中都使用,不需要googleplay商店。但这需要一些时间,位置检测速度取决于一些因素,比如你是否在开阔的地方,天气等

    Related Material