diff options
| author | 2019-10-02 14:49:02 -0700 | |
|---|---|---|
| committer | 2019-10-11 13:18:53 -0700 | |
| commit | 9f52d55eb2e632517f29a1003c28ab33aaa76388 (patch) | |
| tree | f73e98d34622e3e0f5d887ef2b780fbd826cfc18 /location/java/android | |
| parent | 01e165a9ef98f11b23c180ab482dde192d3e013c (diff) | |
Add a Test API to verify if gmscore is the network location provider.
Bug:136079152
Test: adb shell am instrument -w -e class com.google.android.location.gts.LocationManagerTest com.google.android.location.gts/androidx.test.runner.AndroidJUnitRunner
Change-Id: Ibe8ffc6148ea22bef279f75275719075d26f346c
Diffstat (limited to 'location/java/android')
| -rw-r--r-- | location/java/android/location/ILocationManager.aidl | 1 | ||||
| -rw-r--r-- | location/java/android/location/LocationManager.java | 19 |
2 files changed, 20 insertions, 0 deletions
diff --git a/location/java/android/location/ILocationManager.aidl b/location/java/android/location/ILocationManager.aidl index d06ba12f5e2a..7f650e36dcd3 100644 --- a/location/java/android/location/ILocationManager.aidl +++ b/location/java/android/location/ILocationManager.aidl @@ -92,6 +92,7 @@ interface ILocationManager String getBestProvider(in Criteria criteria, boolean enabledOnly); ProviderProperties getProviderProperties(String provider); boolean isProviderPackage(String packageName); + List<String> getProviderPackages(String provider); void setExtraLocationControllerPackage(String packageName); String getExtraLocationControllerPackage(); diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java index 68480ced0692..e7d7c7231015 100644 --- a/location/java/android/location/LocationManager.java +++ b/location/java/android/location/LocationManager.java @@ -51,6 +51,7 @@ import com.android.internal.annotations.GuardedBy; import com.android.internal.location.ProviderProperties; import com.android.internal.util.Preconditions; +import java.util.Collections; import java.util.List; import java.util.concurrent.Executor; import java.util.concurrent.RejectedExecutionException; @@ -1229,6 +1230,24 @@ public class LocationManager { } /** + * Returns a list of packages associated with the given provider, + * and an empty list if no package is associated with the provider. + * + * @hide + */ + @TestApi + @RequiresPermission(Manifest.permission.READ_DEVICE_CONFIG) + @Nullable + public List<String> getProviderPackages(@NonNull String provider) { + try { + return mService.getProviderPackages(provider); + } catch (RemoteException e) { + e.rethrowFromSystemServer(); + return Collections.emptyList(); + } + } + + /** * Sends additional commands to a location provider. Can be used to support provider specific * extensions to the Location Manager API. * |