私はこれを持っています:
public class GpsUpdate extends Observable implements LocationListener {
private int x_position;
private int y_position;
private float currentAccuracy;
public GpsUpdate(Observer observer){
addObserver(observer);
}
@Override
public void onLocationChanged(Location location) {
int lat = (int) (location.getLatitude() * 1E6);
int lng = (int) (location.getLongitude() * 1E6);
setAccuracy(location.getAccuracy());
setX_position(lat);
setY_position(lng);
setChanged();
notifyObservers();
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
public int getX_position() {
return x_position;
}
public void setX_position(int x_position) {
this.x_position = x_position;
}
public int getY_position() {
return y_position;
}
public void setY_position(int y_position) {
this.y_position = y_position;
}
public void setAccuracy(float currentAccuracy) {
this.currentAccuracy = currentAccuracy;
}
public float getAccuracy(){
return currentAccuracy;
}
}
このメソッド(onLocationChanged())は、他のクラスの別のメソッド(update())に位置が変更されたことを通知しますが、現在が以前と同じであっても、すべての座標を収集する必要があります。
_GPSUPDATE = new GpsUpdate(this);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, _GPSUPDATE);
@Override
public void update(Observable observable, Object data) {
xCurrent = _GPSUPDATE.getX_position();
yCurrent = _GPSUPDATE.getY_position();
.....
}
それで、毎秒位置を取得するために何を追加/変更する必要がありますか?