1

network provider用来获取位置Android application。有时我发现即使我到了一个新的地方,位置也不会改变。同时,我发现谷歌地图中的位置发生了变化。所以我退出并重新启动了我的应用程序,并且位置也没有改变。但是经过很长一段时间,或者我重新启动手机,我可以看到新的位置。

有谁知道是什么原因?我曾经getLastKnownLocation()在我的应用程序中获取最新位置。

更新:

当这个问题发生时,我发现cellid和LAC被改变了,而位置没有改变。所以这很奇怪。我认为谷歌地图可能会使用 cellid & LAC 直接获取位置,因此它可以获取正确的位置。

更多更新:

发生此问题时,我使用 cellid 和 LAC 通过来自 Google 服务器的 HTTP POST 请求获取位置。这个位置是正确的。

顺便说一句,我发现我的问题是这样的:Android network location takes hours to update location

4

1 回答 1

0

我不会相信getLastKnownLocation()的。根据我的经验,这是不可靠的。

您最好使用LocationManager.requestLocationUpdates(). 如果您只需要该位置一次,则可以在此之后使用取消注册回调LocationManager.removeUpdates()。如果您的应用程序需要在位置更改时得到通知,那么您可以使用合理的最小时间和/或最小距离参数注册回调(基于您的应用程序需要的任何内容。

于 2012-05-25T12:04:36.047 回答