如何获取未过时的位置?

发布于 2024-12-12 03:12:55 字数 557 浏览 0 评论 0原文

启用 GPS 后,GPS 需要一段时间才能准备就绪。因此,使用此代码可能会获得已过时的位置: 位置 = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 我无法使用已过时的位置。我怎样才能找到我需要的位置?

这是一个类似的问题: Android:getLastKnownLocation 已过时 - 如何强制位置刷新?

从中,我可以使用 LocationListener 来获取更新的位置,该位置应该不会过时。这是正确的。但我该如何处理这种情况:

我已经启用了 GPS,然后启动我的应用程序。如果我停留在一个地方并且不移动,那么 onLocationChanged() 将不会被调用。所以我不能用这个方法来判断getLastKnownLocation()的返回值是否没有过期?

有什么想法吗?

After GPS is enabled, it will take some time before the GPS is ready. So use this code may get a location that is out of date:
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
I can't use the location that is out of date. How can I get the location that I need?

Here is a similar question:
Android: getLastKnownLocation out-of-date - how to force location refresh?

From it, I can use LocationListener to get the updated location, which should be not out of date. It's correct. But how can I handle this case:

I have already enabled GPS, and then start my app. If I stay at one place and don't move, then onLocationChanged() won't be called. So I can't use this method to judge whether the return value of getLastKnownLocation() is not out-of-date?

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

葬心 2024-12-19 03:12:55

如何获取未过时的位置?

您以 1000 毫秒的 minTime 调用 requestLocationUpdates(),对于 onLocationChanged() 中的每个 Location,您调用 getAccuracy()< /代码>。如果您可以接受准确性,请调用 removeUpdates()

所以我不能用这个方法来判断getLastKnownLocation()的返回值是否没有过期

我认为它返回的 Location 对象将包含一个 时间戳。您可以设置现在与位置 getTime() 之间的时差容差

How to get location that isn't out of date?

You call requestLocationUpdates() with the minTime of 1000 ms, for every Location in onLocationChanged(), you call getAccuracy(). If the accuracy is acceptable for you, call removeUpdates().

So I can't use this method to judge whether the return value of getLastKnownLocation() is not out-of-date

I think the Location object that it returns will contain a time stamp. You can set a tolerance for the time difference between now and the Location's getTime()

烂柯人 2024-12-19 03:12:55

每个 Location 对象都有一个 getTime() 方法,该方法返回修复时间。您可以使用它来确定修复的时间。

Each Location object has a getTime() method, which returns the time of the fix. You could use that to determine how old the fix is.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文