summaryrefslogtreecommitdiff
path: root/location/java
diff options
context:
space:
mode:
author Wei Wang <weiwa@google.com> 2019-10-02 14:49:02 -0700
committer Wei Wang <weiwa@google.com> 2019-10-11 13:18:53 -0700
commit9f52d55eb2e632517f29a1003c28ab33aaa76388 (patch)
treef73e98d34622e3e0f5d887ef2b780fbd826cfc18 /location/java
parent01e165a9ef98f11b23c180ab482dde192d3e013c (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')
-rw-r--r--location/java/android/location/ILocationManager.aidl1
-rw-r--r--location/java/android/location/LocationManager.java19
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.
*