【问题标题】:periodically send location updates using fusedLocation API使用 fusedLocation API 定期发送位置更新
【发布时间】:2015-07-06 06:58:54
【问题描述】:

Android 编程对我来说是一个全新的事物,我一直在使用 android 的位置,但我遇到了同样的问题,我将定期向后台服务器发送位置更新,我正在使用 AlarmManager/LocationManager方法,使用定义的时间间隔设置警报管理器,然后当警报接收器被触发时,它将获取设备的当前位置(使用 locationManager)并通过其 onReceive 方法将其发送到服务器。我发现这个 FusedLocation 是一个很好的替代品,因为 LocationManager 给了我一份额外的工作来获得最好的位置提供者。是否可以在没有警报管理器的情况下使用 fusedLocation api 在后台定期发送位置更新?如果是这样,我该怎么做?提前致谢!

【问题讨论】:

    标签: android location alarmmanager periodic-task fusedlocationproviderapi


    【解决方案1】:

    根据LocationRequest documentation

    在这两个极端之间是一个非常常见的用例,其中应用程序肯定希望以指定的时间间隔接收更新,并且可以在可用时更快地接收它们,但仍然希望低功耗影响。这些应用程序应考虑将PRIORITY_BALANCED_POWER_ACCURACY 与更快的setFastestInterval(long)(例如1 分钟)和更慢的setInterval(long)(例如60 分钟)结合使用。它们只会在setInterval(long) 设置的时间间隔内被分配电源责任,但仍可以以高达setFastestInterval(long) 的速率接收由其他应用程序触发的位置。这种请求风格适用于许多位置感知应用程序,包括后台使用。如果您在收到更新后执行繁重的工作(例如使用网络),请注意同时限制 setFastestInterval(long)

    这使您可以保证您将根据您使用setInterval(long) 设置的时间间隔获取位置更新,从而为您提供与定期警报等效的行为,但如果其他应用程序请求位置信息,您可能会经常获取位置信息作为您的setFastestInterval(long) - 如果您只想以设定的时间间隔更新位置,您可以将最快的时间间隔设置为您的时间间隔。

    【讨论】:

    猜你喜欢
    • 2016-01-03
    • 2020-01-21
    • 1970-01-01
    • 2017-12-10
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    相关资源
    最近更新 更多