summaryrefslogtreecommitdiffstats
path: root/location/java/android
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2009-05-01 12:39:03 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2009-05-01 12:39:03 -0700
commite90c0da675a945a86ac06098c1f5694ddc4efb23 (patch)
treef34f4c0f9409846103b59c362f8192f028d58d49 /location/java/android
parentee96dc5113922fdc7c678f791cb65ac8bef21f4b (diff)
parent275555c8eb3fb5df6e7320873b88b77cdde85a9e (diff)
downloadframeworks_base-e90c0da675a945a86ac06098c1f5694ddc4efb23.zip
frameworks_base-e90c0da675a945a86ac06098c1f5694ddc4efb23.tar.gz
frameworks_base-e90c0da675a945a86ac06098c1f5694ddc4efb23.tar.bz2
am 275555c: location: Add support for location providers outside of the
Merge commit '275555c8eb3fb5df6e7320873b88b77cdde85a9e' * commit '275555c8eb3fb5df6e7320873b88b77cdde85a9e': location: Add support for location providers outside of the system process.
Diffstat (limited to 'location/java/android')
-rw-r--r--location/java/android/location/ILocationManager.aidl10
-rw-r--r--location/java/android/location/LocationManager.java81
2 files changed, 86 insertions, 5 deletions
diff --git a/location/java/android/location/ILocationManager.aidl b/location/java/android/location/ILocationManager.aidl
index 096622a..2c214c9 100644
--- a/location/java/android/location/ILocationManager.aidl
+++ b/location/java/android/location/ILocationManager.aidl
@@ -59,9 +59,9 @@ interface ILocationManager
boolean isProviderEnabled(String provider);
Location getLastKnownLocation(String provider);
-
+
/* used by location providers to tell the location manager when it has a new location */
- void setLocation(in Location location);
+ void reportLocation(in Location location);
String getFromLocation(double latitude, double longitude, int maxResults,
String language, String country, String variant, String appName, out List<Address> addrs);
@@ -82,7 +82,7 @@ interface ILocationManager
void clearTestProviderStatus(String provider);
/* for installing external Location Providers */
- void setNetworkLocationProvider(ILocationProvider provider);
- void setLocationCollector(ILocationCollector collector);
- void setGeocodeProvider(IGeocodeProvider provider);
+ void installLocationProvider(String name, ILocationProvider provider);
+ void installLocationCollector(ILocationCollector collector);
+ void installGeocodeProvider(IGeocodeProvider provider);
}
diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java
index dacfeb9..aef8985 100644
--- a/location/java/android/location/LocationManager.java
+++ b/location/java/android/location/LocationManager.java
@@ -1255,4 +1255,85 @@ public class LocationManager {
return false;
}
}
+
+ /**
+ * Installs a network location provider.
+ *
+ * @param name of the location provider
+ * @param provider Binder interface for the location provider
+ *
+ * @return true if the command succeeds.
+ *
+ * Requires the android.permission.INSTALL_LOCATION_PROVIDER permission.
+ *
+ * {@hide}
+ */
+ public boolean installLocationProvider(String name, ILocationProvider provider) {
+ try {
+ mService.installLocationProvider(name, provider);
+ return true;
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException in installLocationProvider: ", e);
+ return false;
+ }
+ }
+
+ /**
+ * Installs a location collector.
+ *
+ * @param provider Binder interface for the location collector
+ *
+ * @return true if the command succeeds.
+ *
+ * Requires the android.permission.INSTALL_LOCATION_COLLECTOR permission.
+ *
+ * {@hide}
+ */
+ public boolean installLocationCollector(ILocationCollector collector) {
+ try {
+ mService.installLocationCollector(collector);
+ return true;
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException in setLocationCollector: ", e);
+ return false;
+ }
+ }
+
+ /**
+ * Installs a geocoder server.
+ *
+ * @param provider Binder interface for the geocoder provider
+ *
+ * @return true if the command succeeds.
+ *
+ * Requires the android.permission.INSTALL_LOCATION_PROVIDER permission.
+ *
+ * {@hide}
+ */
+ public boolean installGeocodeProvider(IGeocodeProvider provider) {
+ try {
+ mService.installGeocodeProvider(provider);
+ return true;
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException in setGeocodeProvider: ", e);
+ return false;
+ }
+ }
+
+ /**
+ * Used by location providers to report new locations.
+ *
+ * @param location new Location to report
+ *
+ * Requires the android.permission.INSTALL_LOCATION_PROVIDER permission.
+ *
+ * {@hide}
+ */
+ public void reportLocation(Location location) {
+ try {
+ mService.reportLocation(location);
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException in reportLocation: ", e);
+ }
+ }
}