【问题标题】:How to make onLocationChanged get called faster如何使 onLocationChanged 被更快地调用
【发布时间】:2014-08-15 05:21:48
【问题描述】:

我让它在我的示例应用程序中工作: http://developer.android.com/training/location/receive-location-updates.html

每次回调 onLocationChanged 时,我都会获得一个新位置。但是,我可以观察到它刷新的最快速度是 1 秒左右。如何让 onLocationChanged 被更频繁地调用?

在我的 Android Manifest 中,我使用了这个:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

在我的 Java 代码中,我使用 PRIORITY_HIGH_ACCURACY:

mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

我还使用将 Interval 和 FastestInterval 设置为不到一秒。

        mLocationRequest.setInterval(50);
        mLocationRequest.setFastestInterval(10);

但它不会在接近 50 或 10 毫秒的时间内更新。我正在使用 HTC One M8,这是相当新的硬件。

关于使定位服务示例更快的任何想法?谢谢。

【问题讨论】:

  • 您的行驶速度有多快,
  • 用于数据采集。我想至少每 0.5 秒采样一次。如果一个参数的采样速度不能超过一秒,为什么还要以毫秒为单位呢?
  • @Gerard,你解决了这个问题吗?

标签: android google-play-services


【解决方案1】:

LocationRequest.setInterval() 的文档说:

此方法以毫秒为单位设置您的应用希望接收位置更新的速率。如果没有其他应用从定位服务接收更新,您的应用将以此速率接收更新。

您没有像您所说的那样频繁地接到onLocationChanged() 的电话,这一定是因为有其他应用程序从定位服务接收更新。

我建议您检查您是否有其他应用使用定位服务并尝试关闭它们以查看您是否开始以所需的速率接收更新。

【讨论】:

    猜你喜欢
    • 2019-02-07
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    相关资源
    最近更新 更多