【问题标题】:Android Google Play Service: Best practices to make location requestAndroid Google Play 服务:发出位置请求的最佳实践
【发布时间】:2016-07-02 09:56:42
【问题描述】:

以下是来自官方指南 site 的 LocationRequest API 的当前报价

在这两个极端之间是一个非常常见的用例,其中 应用程序肯定希望在指定的时间接收更新 间隔,并且可以在可用时更快地接收它们,但仍然想要一个 低功率影响。这些应用程序应考虑 PRIORITY_BALANCED_POWER_ACCURACY 结合更快 setFastestInterval(long)(如 1 分钟)和较慢的 setInterval(long)(如 60 分钟)。他们只会被分配 对 setInterval(long) 设置的时间间隔负责,但仍然可以 接收由其他应用程序触发的位置,速率高达 setFastestInterval(长)。这种请求风格适合 许多位置感知应用程序,包括后台使用。做 如果你执行,也要小心节流 setFastestInterval(long) 收到更新后的繁重工作 - 例如使用 网络。

我担心这些方法

LocationRequest setFastestInterval(long millis)

明确设置位置更新的最快间隔,以毫秒为单位。

LocationRequest setInterval(long millis)

设置活动位置更新的所需间隔,以毫秒为单位。

让我们说数字... 如果我设置间隔=30s 和最快=8s,那么在 t=8、t=16、t=24(8 的倍数)我从其他应用程序获取更新?如果没有运行的位置感知应用程序怎么办? 30多岁可以看到新的更新吗?该更新是否算作我的应用程序的功耗?怎么估算的?

如果这是正确的,那么这两个参数之间的良好关系是什么,可以在不消耗大量电力的情况下获得实时更新?例如 interval=6 x 最快?

我会尝试自己,但我无法重复指南中描述的场景,我也无法区分哪些更新是电源故障。

【问题讨论】:

    标签: android gps location google-play-services updates


    【解决方案1】:

    如果您的应用可以连续跟踪位置,则需要定期获取设备的位置。虽然您可以使用getLastLocation() 获取设备的位置,但更直接的方法是向融合位置提供程序请求定期更新。作为响应,API 会根据当前可用的位置提供程序(如 WiFi 和 GPS)定期使用最佳可用位置更新您的应用程序。

    在请求位置更新之前,您的应用必须连接到位置服务并发出位置请求。一旦位置请求到位,您可以致电requestLocationUpdates() 开始定期更新。在 Google API 客户端提供的onConnected() 回调中执行此操作,该回调在客户端准备就绪时调用。

    尝试阅读Location Strategies,本指南中描述的策略适用于android.location中的平台位置API。另外,显示`obtaining user location and defining a Model for the Best Performance'

    【讨论】:

      猜你喜欢
      • 2021-01-02
      • 1970-01-01
      • 2017-10-25
      • 1970-01-01
      • 2021-05-07
      • 1970-01-01
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多