LocationManager的getLastKnownLocation可靠性如何以及更新的频率如何?

我正在构build一个应用程序,可以在某些操作上使用用户的当前位置。 位置对用户来说更有利,而不是stream程的关键部分。 我只对粗略的准确度感兴趣,它可能会偏离5甚至10英里,仍然是有价值的。 总体计划是看networking提供商是否启用,然后就这样做了

locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER) 

假设没有其他应用程序正在运行,电话会自动定期更新networking位置吗? 也就是说,这个代码可能总会有一个值能够满足我的需求?

编辑:

我一直在做更多的研究,我想我真正想问的问题是,如果Android操作系统或手机本身将更新networking供应商的最后一个已知的位置,因为手机被locking到不同的手机塔或wifinetworking。 答案似乎是否定的。 强制停止手机上的所有应用程序,我知道与位置服务交互,最后一个已知的位置已停止更新。 所以,我猜这几天机会是大多数手机将有一些位置服务在后台运行,更新最后一个已知的位置,但手机本身不会这样做。 因此,如果最后一个已知位置太旧,我认为我会采取某种forms的请求位置更新。

Solutions Collecting From Web of "LocationManager的getLastKnownLocation可靠性如何以及更新的频率如何?"

getLastKnownLocation()只返回最后一个修正。 所以如果没有位置提供者被更新,getLastKnownLocation()的返回值不会改变。 位置对象也将为您提供修复的准确性和时间。

我会看看这个post的更多信息。 你可以使用一个地方的某个版本。

http://android-developers.blogspot.com/2011/06/deep-dive-into-location.html

Frohnzie对于getLastKnownLocation是正确的。 获取位置是一个昂贵的操作,所以只有当一个应用程序请求它时才会发生。 我经常驾驶30英里左右,打开我的手机上的四方应用程序,它显示了我30英里外的金星。 显然他们使用getLastKnownLocation。

对于你的用例,我会推荐LocationManager.requestLocationUpdates 。 您可以指定一个准确性和超时。 因此,如果手机无法快速查找用户位置的粗略估计,则可以放弃位置,因为这对于您的应用程序并不重要。