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:
committed by
Mike Lockwood
parent
cc632731e2
commit
8eb3ea6597
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user