如何使用定位工具获取android中移动设备的当前纬度和经度?

最佳答案

使用 LocationManager

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();

getLastKnownLocation()的调用不会被阻止-这意味着如果当前没有位置可用,它将返回null-因此您可能想看看将 LocationListener 传递给 requestLocationUpdates() method,这将为您提供位置的异步更新。
private final LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
        longitude = location.getLongitude();
        latitude = location.getLatitude();
    }
}

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 10, locationListener);

如果要使用GPS,则需要为应用程序提供 ACCESS_FINE_LOCATION permission
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

您可能还想在GPS不可用时添加 ACCESS_COARSE_LOCATION permission,并使用 getBestProvider() method选择您的位置提供商。

关于java - 如何在Android中获取移动设备的经度和纬度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2227292/

10-12 03:49