diff options
| -rw-r--r-- | api/test-current.txt | 1 | ||||
| -rw-r--r-- | location/java/android/location/ILocationManager.aidl | 3 | ||||
| -rw-r--r-- | location/java/android/location/LocationManager.java | 12 | ||||
| -rw-r--r-- | services/core/java/com/android/server/LocationManagerService.java | 7 |
4 files changed, 22 insertions, 1 deletions
diff --git a/api/test-current.txt b/api/test-current.txt index 2cb01ead0788..fecb07a29a7f 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -802,6 +802,7 @@ package android.location { public class LocationManager { method public String[] getBackgroundThrottlingWhitelist(); + method public String[] getIgnoreSettingsWhitelist(); method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(android.location.LocationRequest, android.location.LocationListener, android.os.Looper); method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(android.location.LocationRequest, android.app.PendingIntent); method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setLocationEnabledForUser(boolean, android.os.UserHandle); diff --git a/location/java/android/location/ILocationManager.aidl b/location/java/android/location/ILocationManager.aidl index 1aeefb84129f..57a0a725fb41 100644 --- a/location/java/android/location/ILocationManager.aidl +++ b/location/java/android/location/ILocationManager.aidl @@ -114,6 +114,7 @@ interface ILocationManager // for reporting callback completion void locationCallbackFinished(ILocationListener listener); - // used by gts tests to verify throttling whitelist + // used by gts tests to verify whitelists String[] getBackgroundThrottlingWhitelist(); + String[] getIgnoreSettingsWhitelist(); } diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java index c027fd499033..586ee2a43683 100644 --- a/location/java/android/location/LocationManager.java +++ b/location/java/android/location/LocationManager.java @@ -414,6 +414,18 @@ public class LocationManager { } /** + * @hide + */ + @TestApi + public String[] getIgnoreSettingsWhitelist() { + try { + return mService.getIgnoreSettingsWhitelist(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** * @hide - hide this constructor because it has a parameter * of type ILocationManager, which is a system private class. The * right way to create an instance of this class is using the diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java index 9d92ea2b5b45..4dcc9ed4cfa5 100644 --- a/services/core/java/com/android/server/LocationManagerService.java +++ b/services/core/java/com/android/server/LocationManagerService.java @@ -2136,6 +2136,13 @@ public class LocationManagerService extends ILocationManager.Stub { } } + @Override + public String[] getIgnoreSettingsWhitelist() { + synchronized (mLock) { + return mIgnoreSettingsPackageWhitelist.toArray(new String[0]); + } + } + @GuardedBy("mLock") private boolean isThrottlingExemptLocked(CallerIdentity callerIdentity) { if (callerIdentity.mUid == Process.SYSTEM_UID) { |