Explaining how the lib and GPS works might help.
GPS have an internal location with an accuracy values (probable distance error), you can consider it as the blue ball on google maps, when you don't know where you are.
You can get the location using two functions:
Location.getCurrentPositionAsync(options)
Tries to get your current location.
Location.getLastKnownPositionAsync(options)
Uses a cached value for a faster response, but it might return a wrong location.
The Accuracy parameters is an enum that goes 1-6 and the docs are not very clear. Going deep into the code i found that it affects the power usage on Android. Only mapping to three levels, the levels details are on Android Official Docs.
private static int mapAccuracyToPriority(int accuracy) {
switch (accuracy) {
case LocationModule.ACCURACY_BEST_FOR_NAVIGATION:
case LocationModule.ACCURACY_HIGHEST:
case LocationModule.ACCURACY_HIGH:
return LocationRequest.PRIORITY_HIGH_ACCURACY;
case LocationModule.ACCURACY_BALANCED:
case LocationModule.ACCURACY_LOW:
default:
return LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY;
case LocationModule.ACCURACY_LOWEST:
return LocationRequest.PRIORITY_LOW_POWER;
}
}
And finally! How to check the accuracy of your current location. By reading the Accuracy Attribute of the response, it gives you the probable error in meters.