Changed process to retrieve the most accurate location provider

Changed process to retrieve the most accurate location provider using criteria instead of try all of them