gpt4 book ai didi

android - 设置 GPS 位置的 'expiry' 时间

转载 作者:太空狗 更新时间:2023-10-29 16:23:08 24 4
gpt4 key购买 nike

我正在开发一个相机应用程序,它会自动对拍摄的每张照片进行地理标记。使用

LocationManager.requestLocationUpdates()    //simply to get the GPS running
LocationManager.getLastKnownLocation() //for each picture, to get coordinates

只要尽可能快地从手机中提取坐标就足够了,因为它仍然是一个相机应用程序,您不想浪费时间获取 GPS 数据。

(假设仅使用 GPS_PROVIDER,而不是 NETWORK_PROVIDER)

但是,如果用户进入隧道并且手机无法继续获取更新,则会出现问题。 10 分钟后调用 getLastKnownLocation() 时,我会得到一个过时的位置。

我想找到一种方法,根据个人的舒适程度,我可以在位置上设置“到期”时间。

换句话说,继续使用 getLastKnownLocation(),但如果数据(例如)超过 5 分钟,请不要理会它,我宁愿有一个“空”位置。但是,如果数据是 2 分钟前的数据,那仍然没问题

最佳答案

您可以自己实现。底层 API 中没有包含此内容的任何内容,但是将您发起请求(或获得最后一个请求)的时间存储在您的应用程序中(也许在 SharedPreferences 中)是完全可以的。您还必须厌倦诸如用户移动的速度等问题,因此通常您可能需要花费大量的精力来确定要如何执行此操作。没有任何方法(在 API 中)可以了解对 .getLastLocation() 的调用有多新鲜。在几分钟内,最好使用我提到的技术。对于更长的时间,您可能需要考虑类似 AlarmManager 的东西(如果您的应用程序在那么长的时间尺度上运行,无论如何您都应该使用它)。但是,您似乎比我更多地使用 .getLastLocation。我通常只是简单地请求更新,然后在获得第一个更新时“放下点”。总的来说,我发现 .getLastKnownLocation() 并不是真的那么可靠,但这可能只是因为我不经常使用带有位置信息的应用程序。

关于android - 设置 GPS 位置的 'expiry' 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9493175/

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