Android:getLastKnownLocation已过期 - 如何强制位置刷新?

znq*_*znq 11 gps android geolocation

我正在使用

myLocation = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Run Code Online (Sandbox Code Playgroud)

在我的应用程序启动时检索当前位置.

正如Android文档所述,此位置可能是"过时的",因为该方法返回上次使用GPS时的位置.

如何从GPS 主动请求当前位置?我考虑使用LocationListener,但这可能有点过分,因为我只需要一次位置(在我的应用程序的开头).

有任何想法吗?

Ret*_*ier 10

您最初的直觉是正确的 - 您需要使用a LocationListener来请求更新.鉴于您只需要一个位置,您可以在第一个值返回后取消注册LocationListener.

但在实践中,听一点时间可能是明智之举.基于位置的服务(特别是GPS)在首次获得修复时有一种"跳跃"的倾向.您最好的选择是倾听一定的时间或一定数量的更新,或者直到达到一定的准确度(位置监听器将返回返回位置的准确性).