【发布时间】:2015-10-12 16:51:20
【问题描述】:
我想获取用户的当前位置(纬度,经度对),并仅在用户距离先前获取的位置 100 公里远时将其发送到服务器。如果有的话,最好的方法是什么?
我的目的是在获取位置时尽可能少地使用用户资源。
【问题讨论】:
我想获取用户的当前位置(纬度,经度对),并仅在用户距离先前获取的位置 100 公里远时将其发送到服务器。如果有的话,最好的方法是什么?
我的目的是在获取位置时尽可能少地使用用户资源。
【问题讨论】:
有一个接口叫LocationListener:
http://developer.android.com/reference/android/location/LocationListener.html
您可以像这样使用 LocationManager:
public void startLocationUpdates() {
Criteria criteria = new Criteria();
String bestProvider = locationManager.getBestProvider(criteria, false);
locationManager.requestLocationUpdates(bestProvider, 60000, 10, new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onProviderDisabled(String provider) {}
@Override
public void onLocationChanged(Location location) {
System.out.println("LOCATION CHANGED: "+location);
}
});
}
public void stopLocationUpdates() {
locationManager.removeUpdates(this);
}
10 是最小距离,本例中的 60000 是请求之间的最短时间。
【讨论】:
onProviderEnabled 中调用startLocationUpdates 以使其永远工作吗?