The accuracy of GPS will not be uniform across the session. But there are means to overcome this. Even if user is not changing the location, still the latitide , longitude value will differ in successive periods. Check out the following way how to modify these anomaly.
// for location updates
private int locationupdate = 8000; //in milliseconds
private int locationdistance = 10; // in meters
While creating a location request, mention the setSmallestDisplacement
as well as setInterval
as per your requirement as shown below
protected void createLocationRequest() {
locationRequest = new LocationRequest();
locationRequest.setInterval(locationupdate); //in milliseconds
locationRequest.setFastestInterval(5000); //in milliseconds
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setSmallestDisplacement(locationdistance);
}
Check out this link for more information