Android - 只获得一次位置

Mar*_*ion 14 java android location

我需要在Android应用程序上获取当前用户位置,所以我在网上阅读了一些教程和示例,但我看到在所有示例中,该位置是从"onLocationChange"重新获得的,这意味着每次都是位置更改,执行"onLocationChange"中的代码.

我只需要在应用程序启动时获取用户位置.

谢谢你的帮助!

小智 12

您可以使用下面的代码获取最后知道的位置.它获取位置提供程序并向后循环数组.即从GPS开始,如果没有GPS则获得网络位置.您可以在需要获取位置时调用此方法.

private double[] getGPS() {
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);  
List<String> providers = lm.getProviders(true);

/* Loop over the array backwards, and if you get an accurate location, then break                 out the loop*/
Location l = null;

for (int i=providers.size()-1; i>=0; i--) {
l = lm.getLastKnownLocation(providers.get(i));
if (l != null) break;
}

double[] gps = new double[2];
if (l != null) {
gps[0] = l.getLatitude();
gps[1] = l.getLongitude();
}
return gps;
}
Run Code Online (Sandbox Code Playgroud)

  • 对于lat和long,我得到0.0,任何想法为什么? (2认同)

Eri*_*ine 3

您可以使用 LocationManager 来完成此操作。获取最后的已知位置