gpt4 book ai didi

android - Android 中的 requestLocationUpdates 间隔

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:20:22 25 4
gpt4 key购买 nike

我尝试为函数 onLocationChanged 获取正确的更新速度,这是我的类(class):

public class LocationService extends Service implements LocationListener {

将 minTime 设置为 6000 没有帮助,它会不断更新,我做错了什么?

public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener, Looper looper) {

问候

最佳答案

minTime 只是对 LocationProvider 的提示,并不意味着您的位置监听器将每 6 秒调用一次。您将收到更多位置更新,您的代码会选择最准确的位置。

监控手机上的 GPS 图标。调用 requestLocationUpdates 将触发 GPS 来精确定位您的位置,如果它能够获得修复,它将向 locationlistener 发送一个或多个位置更新。 (此时,您的 GPS 图标在搜索位置时应该是动画的)。

在此期间,您的位置监听器可能会收到多个位置更新。您的代码可以选择最准确的位置,并只处理那个位置。

在 GPS 向您的收听者发送位置更新后,应该有一段时间不活动。 (您的 GPS 图标应该会消失几秒钟)。这段不活动时间应与您的 minTime 相对应。 GPS 的状态也会发生变化,因为它将变为 TEMPORARILY_UNAVAILABLE。

之后,重复相同的过程。 (GPS 变为可用,您将再次收到一个或多个位置更新)。

还要考虑到,如果 GPS 无法获得位置修复,GPS 图标将保持 Activity 状态超过 6 秒,但您将不会收到位置更新。

您还可以通过以下方法通过监听器监控 GPS 提供商的状态:

public void onStatusChanged(String provider, int status, Bundle extras) {}

status 是定义在 android.location.LocationProvider 上的下列常量之一

public static final int OUT_OF_SERVICE = 0;
public static final int TEMPORARILY_UNAVAILABLE = 1;
public static final int AVAILABLE = 2;

看看Understanding the LocationListener in Android有关 minTime 行为的示例,以及可帮助您了解正在发生的事情的场景(包括一些日志记录)。

请记住,调整 LocationManager 上的 minTime 和 minDistance 参数,并根据 GPS 状态更新采取行动将使您能够微调用户位置开发。

关于android - Android 中的 requestLocationUpdates 间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3993658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com