diff options
author | Jason Monk <jmonk@google.com> | 2015-06-17 14:44:39 -0400 |
---|---|---|
committer | Jason Monk <jmonk@google.com> | 2015-06-17 15:16:51 -0400 |
commit | b71218aec133981126b0f916fc1f731fdbb04b1b (patch) | |
tree | fd5bb69dffe475ed277c992f38202561d68bab84 | |
parent | f858f7034c911c1a4dc45daa6e80ee0f9925e008 (diff) | |
download | frameworks_base-b71218aec133981126b0f916fc1f731fdbb04b1b.zip frameworks_base-b71218aec133981126b0f916fc1f731fdbb04b1b.tar.gz frameworks_base-b71218aec133981126b0f916fc1f731fdbb04b1b.tar.bz2 |
Add way to get the network location provider package
Bug: 21805447
Change-Id: Ie9fd35a69d8808ae4346927b30b77e9fd733b569
-rw-r--r-- | location/java/android/location/ILocationManager.aidl | 1 | ||||
-rw-r--r-- | services/core/java/com/android/server/LocationManagerService.java | 21 |
2 files changed, 22 insertions, 0 deletions
diff --git a/location/java/android/location/ILocationManager.aidl b/location/java/android/location/ILocationManager.aidl index a3ea896..f3d755c 100644 --- a/location/java/android/location/ILocationManager.aidl +++ b/location/java/android/location/ILocationManager.aidl @@ -75,6 +75,7 @@ interface ILocationManager String getBestProvider(in Criteria criteria, boolean enabledOnly); boolean providerMeetsCriteria(String provider, in Criteria criteria); ProviderProperties getProviderProperties(String provider); + String getNetworkProviderPackage(); boolean isProviderEnabled(String provider); void addTestProvider(String name, in ProviderProperties properties, String opPackageName); diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java index c76fc1c..743aafb 100644 --- a/services/core/java/com/android/server/LocationManagerService.java +++ b/services/core/java/com/android/server/LocationManagerService.java @@ -1958,6 +1958,27 @@ public class LocationManagerService extends ILocationManager.Stub { return p.getProperties(); } + /** + * @return null if the provider does not exist + * @throws SecurityException if the provider is not allowed to be + * accessed by the caller + */ + @Override + public String getNetworkProviderPackage() { + LocationProviderInterface p; + synchronized (mLock) { + if (mProvidersByName.get(LocationManager.NETWORK_PROVIDER) == null) { + return null; + } + p = mProvidersByName.get(LocationManager.NETWORK_PROVIDER); + } + + if (p instanceof LocationProviderProxy) { + return ((LocationProviderProxy) p).getConnectedPackageName(); + } + return null; + } + @Override public boolean isProviderEnabled(String provider) { // Fused provider is accessed indirectly via criteria rather than the provider-based APIs, |