【问题标题】:What is the connection between LocationRequest object and LocationChangeListenerLocationRequest 对象和 LocationChangeListener 之间有什么联系
【发布时间】:2017-07-08 23:40:16
【问题描述】:

我一直在关注this,因为我的应用程序需要获取当前位置更新,即使步行 10 步或可能每 2 分钟一次,但我认为基于时间在电池使用方面的要求更高,在开始文件说:

您的应用指定所需的准确度/功耗级别和所需的更新间隔,并且设备会自动对系统设置进行适当的更改。这些设置由 LocationRequest 数据对象定义。

这是什么意思?准确度和更新间隔?

在那之后,当它解释这些事情时,他们会说

要存储对融合位置提供程序的请求的参数,请创建一个 LocationRequest。这些参数决定了位置请求的准确度。

这是否意味着我们可以使用 setInterval() 获取当前位置更新,例如更新 latlng?如果是这样,那么为什么我们必须使用 onlocationchangelistener?如果位置请求已满足要求

谢谢

【问题讨论】:

    标签: java android google-maps google-play-services google-maps-android-api-2


    【解决方案1】:

    关于位置的主要术语有两个,分别是

    • 获取最后一个已知位置(旧位置)
    • 接收位置更新(新位置)

    理解这些术语将有助于 LocationRequest 与其监听器之间的关系。

    获取最后已知位置

    位置 api 可以为给定的提供者提供最后获得的位置,而无需位置请求。该位置可以在任何时间(例如 3 - 5 小时前)通过应用程序(包括您的应用程序)获得。没有必要说“嘿,提供者请给我新的位置”,所以我们不需要 LocationRequest 对象。

    接收位置更新

    这就是我们需要说“嘿,供应商,请每 30 秒以高精度给我新的位置”

    要定义我们上面的请求,我们需要创建 LocationRequest 对象。

    要接收我们请求的结果,我们需要创建监听器(接收过程是异步的)

    这是LocationRequest和监听器的关系。


    LocationRequest 对象有两个用途

    1. 如上所述,为融合的提供者发出位置请求
    2. 提示对话以对位置请求提出足够的要求(例如准确度级别)

    【讨论】:

    • 如果我们走10步,onlocationchanged会调用吗?
    • 不是步行或步行,它的实际位置变化以米为单位。如果您设置例如 10 米,它将为您提供米的变化。结果,将调用侦听器。
    • 好的,如果我将手机从一个房间移动到另一个房间,设备的纬度会发生变化吗?
    • 谢谢,请回答我的另一个问题stackoverflow.com/questions/44995445/…
    • 可以,但很少,因为接收位置更新有点困难的室内场所。为获得最佳效果,它必须在户外工作。
    猜你喜欢
    • 2011-05-31
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多