安卓 - 只获取一次位置
我需要在Android应用程序上获取当前用户位置,因此我已经在网络上阅读了一些教程和示例,但是我看到在所有示例中,该位置都是从“onLocationChange”中恢复的,这意味着每次位置更改时,都会执行“onLocationChange”中的代码。
我只需要在应用程序启动时获取用户位置。
感谢您的帮助!
我需要在Android应用程序上获取当前用户位置,因此我已经在网络上阅读了一些教程和示例,但是我看到在所有示例中,该位置都是从“onLocationChange”中恢复的,这意味着每次位置更改时,都会执行“onLocationChange”中的代码。
我只需要在应用程序启动时获取用户位置。
感谢您的帮助!
您可以使用以下代码获取最后知道的位置。它获取位置提供程序并向后循环访问数组。即从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;
}