Problema de desempenho da FusedLocationApi: a precisão parece ter um limite de 10,0 metros

Estou com um problema estranho, onde oFusedLocationProviderAPI não me fornece um número de precisão melhor que 10,0 metros. Começa como normal, me dando um número alto de, por exemplo, 56 metros ... 24 ... 13 ... e depois fica em 10,0. Aparentemente limitado a não dar nada melhor do que isso.

Tentei no telefoneSony Xperia Z2 & Huawei Honor 8

location.getAccuracy() //Seems capped at 10.0 meters

O estranho é que eu estava recebendo um número de precisão de até 3,0 metros com bom tempo lá fora e não tenho memória de alterar as opções de GPS dos telefones / nem opções relacionadas à classe de serviço GPS.

Meu aplicativo depende de conseguir o número de precisão mais alto possível. Qual poderia ser o problema aqui? O próprio telefone? As configurações da solicitação? Possíveis razões do número limitado?

Editar: Experimentou o mesmo problema ao experimentar o Huwaei. Então parece haver um problema com o código? Como após x quantidade de solicitações de localização, a precisão é limitada a 10,0 do sistema ??

Coisas relevantes do meu serviço GPS:

Manifesto

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />

Serviço

private long UPDATE_INTERVAL = 2 * 1000;  /* 10 secs */
private long FASTEST_INTERVAL = 2000; /* 2 sec */
static final int MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION = 1;

private void requestLocation() {
    locationRequest = new LocationRequest();
    locationRequest.setInterval(UPDATE_INTERVAL);
    locationRequest.setFastestInterval(FASTEST_INTERVAL);
    locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
    gac = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(LocationServices.API)
            .build();
}

@Override
public void onLocationChanged(Location location) {

    locationData = location; //1. Set local field to incoming location
    gpsAccuracy = location.getAccuracy(); //2. Est. horizontal accuracy of location, radial, in meters.
}

questionAnswers(1)

yourAnswerToTheQuestion