【问题标题】:Android, Location Request, set expiration duration doesn't workAndroid,位置请求,设置过期时间不起作用
【发布时间】:2013-05-30 08:06:20
【问题描述】:

我正在使用 I/O 2013 中引入的新位置 API。

它工作正常,我对它的结果没有任何问题。我的问题是当我将 setExpirationDuration(WHATEVER_MILLIS) 设置为任何毫秒时,它可以工作一分钟。

这是我的代码:

LocationRequest locationRequest = LocationRequest.create()
                            .setInterval(10 * 60 * 1000) // every 10 minutes
                            .setExpirationDuration(10 * 1000) // After 10 seconds
                            .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

当我运行该应用程序时,卫星指示器将显示在托盘中,因此我预计只需 10 秒即可看到它。但是,它会在一分钟后消失。

任何建议或 cmets 将不胜感激。谢谢。

【问题讨论】:

  • 也许间隔时间除以到期时间剩下1分钟
  • 谢谢JRowan,无论我设置什么,毫卫星指示器都会显示一分钟。
  • 您是否认为它的优先级高准确度,gps 需要一点时间才能找到准确的位置,可能会覆盖过期
  • 根据 Google 在其文档页面 (developer.android.com/reference/com/google/android/gms/location/…) 中提到的内容,“位置客户端将在请求过期后自动停止更新。”。所以,不知道为什么它不会停止。但毫无疑问,你是对的。我在覆盖区域。但是这种方法应该阻止它。甚至 setExpirationTime (long millis) 方法也不能正常工作;(
  • 我阅读了链接,它说它包含的 elapsedrealtime 是多少,也许在它说你可以设置一个小于 elapsedrealtime 的时间的间隔上增加 10 秒,也许 1 分钟是默认的因为它没有意义

标签: android gps android-location


【解决方案1】:

由于它在 Android 中似乎是一个真正的问题,因此一种解决方法可能是手动删除位置更新的处理程序。

    listHandler = new Handler() {
        public void handleMessage(Message msg) {
            if (msg.what == 0) {
                mLocationClient.removeLocationUpdates(MyActivity.this);
                //Location Updates are now removed
            }
            super.handleMessage(msg);
        }
    };

在您请求位置更新后(最长持续时间为 10 秒),您调用此 Handler,当然会延迟 10 秒。

myLocationClient.requestLocationUpdates(...);
listHandler.sendEmptyMessageDelayed(0, 10000);

这可确保在 10 秒后删除您的位置更新。

【讨论】:

    【解决方案2】:

    在文档中 (https://developer.android.com/reference/com/google/android/gms/location/LocationRequest.html#setExpirationDuration(long))

    它说: “持续时间立即开始(而不是在将请求传递给定位客户端时),因此如果稍后重新使用请求,请再次调用此方法。”

    人们会期望这个持续时间在调用以下行时开始:

    LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, request, this);
    

    但是,文档说明此持续时间从创建请求对象时开始。

    【讨论】:

      猜你喜欢
      • 2021-12-18
      • 2021-09-09
      • 2015-11-05
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 2020-05-08
      • 2020-03-23
      • 2016-09-02
      相关资源
      最近更新 更多