Use isLocationProviderEnabled to test for enabled providers

LocationManagerService was just checking if the string of (comma-separated)
Location Providers contained the provider we were interested in.  This works
fine in normal cases, but breaks if we add a provider such as test_network.
Enabling test_network causes LocationManagerService to think that the network
provider is also enabled.

The code in Settings.Secure.isLocationProviderEnabled() checks for the commas
in the string as well, to make sure that a provider name which is a substring
of another provider name won't cause problems.  It also centralizes the code
which reads the string.

Signed-off-by: Brad Larson <brad.larson@garmin.com>
This commit is contained in:
Brad Larson
2009-12-29 11:47:55 -06:00
committed by Mike Lockwood
parent cc632731e2
commit 8eb3ea6597

View File

@@ -552,10 +552,8 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
}
// Use system settings
ContentResolver resolver = mContext.getContentResolver();
String allowedProviders = Settings.Secure.getString(resolver,
Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
return ((allowedProviders != null) && (allowedProviders.contains(provider)));
return Settings.Secure.isLocationProviderEnabled(resolver, provider);
}
private void checkPermissionsSafe(String provider) {