如何在安卓设备上获取GPS定位状态 - 即时获取(不使用监听器)

4
我想立刻知道GPS是否已打开并定位。
我不想监听事件 - 只需获得答案(如果定位成功,则获取位置)。
在所有示例中,人们创建侦听器并等待来自GPS的事件。我的调用应立即返回。
任何11级以上的内容都可以,但如果某些内容仅存在于14级及以上,则我可以管理。
谢谢。

请查看这个答案,我认为这就是你要找的:https://dev59.com/oXI-5IYBdhLWcg3wFkOO#3712727 - hunyadym
1个回答

5

我不想监听事件 - 我只需要得到答案

你可以使用 getLastKnownLocation(),但如果返回 null,那么你必须等待位置更新。


要测试GPS是否处于活动状态,请使用isProviderEnabled()

您还应考虑使用PASSIVE_PROVIDER。它会报告任何位置修复,无论是GPS、NETWORK等。


但它会给我任何最后已知的位置。现在对我来说知道GPS是否开启并固定很重要。如果最后已知的位置是10分钟前的,那就不好了。 - Dani
1
请注意,这并不检查 GPS 是否处于活动状态,您应该使用 isProviderEnabled()getLastKnownLocation() 应返回最后一个获取的修复程序,但如果用户刚从挪威 20 公里以上的长隧道中出现,则数据将过时。您可以像任何其他对象一样使用 getTime() 检查此位置对象的时间戳。 - Sam
那么唯一的方法就是检查时间戳吗?没有其他方法来验证GPS是否已锁定吗? - Dani
我会尝试自己查找 - 但如果我使用这个getTime()函数来与本地设备时间进行比较,它会受到设备时区的影响吗?GPS时间有时区吗? - Dani
有没有GPS时间的时区?嗯,getTime()应该参考设备的时区,所以您需要询问设备它处于哪个时区,我不认为GPS会复制这个接口。但这是我的直觉反应,我会再次检查自己,并让您知道是否发现了任何不同之处。 - Sam
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接