【问题标题】:Interval of updating location with Fused provider使用 Fused 提供程序更新位置的间隔
【发布时间】:2016-10-31 18:39:32
【问题描述】:

我面临一个问题。我正在使用 Fused Location Provider,在文档中它写道,当我们使用高优先级时,我们将每 5 秒获得一次更新,但我看过一些教程,那个人写了这个函数

protected void createLocationRequest(){
    mLocationRequest=new LocationRequest();
    mLocationRequest.setInterval(INTERVAL);
    mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}

此 INTERVAL 为 10 秒。这是否意味着我将每 10 秒或 5 秒获得更新(就像它在文档中写的使用高优先级一样)? 提前致谢。

【问题讨论】:

    标签: android-location fusedlocationproviderapi android-fusedlocation


    【解决方案1】:

    间隔 10 秒:您将大约每 10 秒收到一次位置更新。但它是近似值,它给出的位置可能少于或多于 10 秒。

    最快间隔:该值必须小于间隔值。好的,我们知道位置更新将在 10 秒左右(或多或少)到来。 fastest 在这里的意思是,我不想接收低于这个值的位置更新(最快间隔)

    假设你有以下参数

    • 间隔:10 秒
    • 最快间隔:5 秒

    可能的结果可能如下(假设)

    01:00:00(请求)

    01:00:12(位置更新,12 秒)

    01:00:22(位置更新,10 秒)

    01:00:30(位置更新,8 秒)

    01:00:38(位置更新,8 秒)

    01:00:46(位置更新,8 秒)

    01:00:52(位置更新,6 秒)

    01:00:59(位置更新,7 秒)

    ...

    结果:您收到了大约 10 秒 且超过 5 秒

    的位置更新

    【讨论】:

    • 谢谢兄弟,请再问一个问题...是否有任何地方写过我们第一次获取位置需要多少秒(例如,第一次启动应用程序时)?这是否取决于区间和 FastestInterval?
    • 一般会倾向于这些参数(在区间附近并且大于最快的值)。但在某些情况下,它可能会改变。例如,如果您住在建筑物或封闭区域,则此时间可能需要很长时间。
    • 那么在 Fused Provider 中兑现呢?有了这个,我的代码位置每 10 秒更新一次,但是兑现的位置在哪里?
    • 你说的兑现是什么意思?可能是缓存?
    • 是的,我的意思是当我阅读一些关于 gps、网络提供商的文章时(在我找到 Fused 提供商之前)我读到当启动 android 位置时,我们拥有的第一个信息是兑现 gps 或兑现网络提供者,经过一段时间后,我们终于获得了当前位置....这个过程在 Fused 提供者中是否相同?
    猜你喜欢
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 2017-02-17
    • 2011-03-06
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多