我正在构建一个可以在某些操作上使用用户当前位置的应用程序.位置对用户而言更为有益,而不是过程的关键部分.我只对非常粗糙的精度感兴趣,可以关闭5甚至10英里,仍然是有价值的.一般计划是看网络提供商是否启用,然后才能做
locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER)
假设没有其他应用程序正在运行,手机会自动定期更新网络位置吗?即这段代码可能总是会返回一个符合我需求的值?
编辑:
我一直在做更多的研究,我认为我真的在这里问的问题是,如果Android操作系统或手机本身会更新网络提供商的最后一个已知位置,因为手机锁定在不同的手机塔或WiFi网络.答案似乎不是.强制停止我所在的手机上的所有应用程序,以便与位置服务进行交互,最后一个已知位置已停止更新.所以,我猜这几天有可能是大部分手机都会在后台更新最后一个已知位置的一些位置服务,但手机本身不会这样做.因此,如果最后一个已知的位置太旧,我会以某种形式的请求位置更新.
解决方法
getLastKnownLocation()只返回最后一个修复.因此,如果没有更新位置提供程序,getLastKnownLocation()的返回值将不会更改.位置对象还将为您提供修复的准确性和时间.
我会看这个帖子更多的信息.您可以使用一个版本的一次性位置.
http://android-developers.blogspot.com/2011/06/deep-dive-into-location.html