Хотя в API 9 появились некоторые новые возможности с точки зрения настройки точности, то, что сказал @dev mz, работать не будет. Вы не можете использовать новые константы непосредственно в criteria.setAccuracy
. Вместо этого вы можете использовать эти новые функции, такие как:
//All your normal criteria setup
Criteria criteria = new Criteria();
//Use FINE or COARSE (or NO_REQUIREMENT) here
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAltitudeRequired(true);
criteria.setSpeedRequired(true);
criteria.setCostAllowed(true);
criteria.setBearingRequired(true);
//API level 9 and up
criteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH);
criteria.setVerticalAccuracy(Criteria.ACCURACY_HIGH);
criteria.setBearingAccuracy(Criteria.ACCURACY_LOW);
criteria.setSpeedAccuracy(Criteria.ACCURACY_HIGH);
Что касается вашего вопроса, помните, что мы говорим о критериях для входящих обновлений местоположения. Это на самом деле не улучшит качество данных GPS, потому что это зависит от устройства / оборудования / сети. Он просто действует как фильтр для входящих геолокаций.