I'm trying to make a gps post as accurate as possible in different interval ranges, I have few external gps, 10hz, 5hz and 1hz
LocationManager locationManager = (LocationManager)
car.this.getSystemService(car.this.LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
locationListener);
Thus, I get a log update like when driving at a constant speed
10hz GPS
81ms new position
79ms new position
88ms new position
96ms new position
196ms new positon
60ms new positon
256ms new position
70ms new position
5 hz GPS
187ms new...
189ms ..
275ms ..
140ms ..
180ms ..
220ms ..
So, I think that onStatusChanged is initially faster than the nominal frequency, but then it saturates and causes big jumps.
If I use a timer, it works well, and I get a position every 100 ms (200 or 1000), but the timer goes out about 100 ms every 10 seconds.
Edit: to clarify, I want to get a position in each exact (or about) 100 ms, 200 ms or 1000 ms
** UPDATE 12-04-13
location.getTime() , , / 10 .
HTC Sensation Z710e 4.0.3 Internal GPS 1HZ
Average Accuracy: 12.1m
Average intertval: 1186ms
Min: 98ms
Max: 2621ms
HTC Desire HD 4.0.4 Internal GPS 1HZ
Average Accuracy: 10.6m
Average intertval: 1211ms
Min: 144ms
Max: 2588ms
ASUS Transformer TF101 4.0.4 Internal GPS 1HZ
Average Accuracy: 18.15m
Average intertval: 1000MS
Min: 1000ms
Max: 1000ms
SAMSUNG NOTE II GT-N7100 4.1.2 Internal GPS 1HZ (Glonass)
Average Accuracy: 6.8m
Average intertval: 1000MS
Min: 1000ms
Max: 1001ms
SAMSUNG, HTC OR ASUS with external GPS 5HZ
Average Accuracy: 2.2m
Average intertval: 200MS
Min: 200ms
Max: 200ms
SAMSUNG, HTC OR ASUS with external GPS 10HZ (Glonass)
Average Accuracy: 1.6m
Average intertval: 100MS
Min: 100ms
Max: 100ms