Я столкнулся со странной проблемой, когда FusedLocationProviderAPI
не дает мне более точного числа, чем 10,0 метров. Он начинается как обычно, давая мне большое число, например, 56 метров... 24... 13... и затем остается на уровне 10,0. По-видимому, ограничено тем, что дает не лучше, чем это.
Пробовал на телефоне Sony Xperia Z2 и Huawei Honor 8.
location.getAccuracy() //Seems capped at 10.0 meters
Странно то, что я получал число Точности примерно до 3,0 метров при хорошей погоде на улице, и я не помню, чтобы менялись параметры GPS телефона или какие-либо параметры, связанные с классом обслуживания GPS.
Мое приложение зависит от возможности получить максимально возможное число точности. В чем тут может быть дело? Сам телефон? Настройки запроса? Возможные причины ограниченного числа?
Редактировать: Столкнулся с той же проблемой при попытке установить Huwaei. Значит, проблема с кодом? Например, после x количества запросов о местоположении точность системы ограничивается 10,0 ??
Соответствующие вещи из моей службы GPS:
Манифест
<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" />
обслуживание
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.
}