我的代码在需要的时候就可以工作。它要么立即起作用,要么需要很长时间,或者根本不起作用。代码如下:
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationLis = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
lat= location.getLatitude();
log = location.getLongitude();
locationManager.removeUpdates(locationLis);
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle){
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
System.out.println("Not Found");
}
};
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationLis);
我用来测试的设备是 Nexus 7 (2012)
最佳答案
我没有使用 GPS_PROVIDER
,而是将其更改为 NETWORK_PROVIDER
。
这使用网络而不是 GPS 来获取位置,后者花了很长时间。代码是:
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationLis);
现在读到:
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationLis);
关于java - Android 位置管理器需要很长时间查找经度和纬度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30098552/