4035f5a7c191a68bc9a5912ce44c43c82e9e5dbf |
|
17-Aug-2012 |
Nick Pelly <npelly@google.com> |
Port location blacklist code to MR1. I had to re-do this change for MR1 because LocationManagerService changed so much. Here is the original change description: Add package-name-prefix blacklist for location updates. The Settings.Secure value locationPackagePrefixBlacklist and locationPackagePrefixWhitelist contains comma seperated package-name prefixes. Location & geo-fence updates are silently dropped if the receiving package name has a prefix on the blacklist. Status updates are not affected. All other API's work as before. A content observer is used so run-time updates to the blacklist apply immediately. There is both a blacklist and a whitelist. The blacklist applies first, and then exemptions are allowed from the whitelist. In other words, if your package name prefix matches both the black AND white list, then it is allowed. Bug: 6986553 Change-Id: I1e151e08bd7143e47db005bc3fe9795076398df7
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
6fa9ad4afcd762aea519ff61811386c23d18ddb2 |
|
16-Jul-2012 |
Nick Pelly <npelly@google.com> |
Location overhaul, major commit. Themes: Fused Location, Geofencing, LocationRequest. API changes o Fused location is always returned when asking for location by Criteria. o Fused location is never returned as a LocationProvider object, nor returned as a provider String. This wouldn't make sense because the current API design assumes that LocationProvider's have fixed properties (accuracy, power etc). o The fused location engine will tune itself based on the criteria passed by applications. o Deprecate LocationProvider. Apps should use fused location (via Criteria class), instead of enumerating through LocationProvider objects. It is also over-engineered: designed for a world with a plethora of location providers that never materialized. o The Criteria class is also over-engineered, with many methods that aren't currently used, but for now we won't deprecate them since they may have value in the future. It is now used to tune the fused location engine. o Deprecate getBestProvider() and getProvider(). o Add getLastKnownLocation(Criteria), so we can return last known fused locations. o Apps with only ACCESS_COARSE_LOCATION _can_ now use the GPS, but the location they receive will be fudged to a 1km radius. They can also use NETWORK and fused locatoins, which are fudged in the same way if necessary. o Totally deprecate Criteria, in favor of LocationRequest. Criteria was designed to map QOS to a location provider. What we really need is to map QOS to _locations_. The death knell was the conflicting ACCURACY_ constants on Criteria, with values 1, 2, 3, 1, 2. Yes not a typo. o Totally deprecate LocationProvider. o Deprecate test/mock provider support. They require a named provider, which is a concept we are moving away from. We do not yet have a replacement, but I think its ok to deprecate since you also need to have 'allow mock locations' checked in developer settings. They will continue to work. o Deprecate event codes associated with provider status. The fused provider is _always_ available. o Introduce Geofence data object to provide an easier path fowards for polygons etc. Implementation changes o Fused implementation: incoming (GPS and NLP) location fixes are given a weight, that exponentially decays with respect to age and accuracy. The half-life of age is ~60 seconds, and the half-life of accuracy is ~20 meters. The fixes are weighted and combined to output a fused location. o Move Fused Location impl into frameworks/base/packages/FusedLocation o Refactor Fused Location behind the IProvider AIDL interface. This allow us to distribute newer versions of Fused Location in a new APK, at run-time. o Introduce ServiceWatcher.java, to refactor code used for run-time upgrades of Fused Location, and the NLP. o Fused Location is by default run in the system server (but can be moved to any process or pacakge, even at run-time). o Plumb the Criteria requirements through to the Fused Location provider via ILocation.sendExtraCommand(). I re-used this interface to avoid modifying the ILocation interface, which would have broken run-time upgradability of the NLP. o Switch the geofence manager to using fused location. o Clean up 'adb shell dumpsys location' output. o Introduce config_locationProviderPackageNames and config_overlay_locationProviderPackageNames to configure the default and overlay package names for Geocoder, NLP and FLP. o Lots of misc cleanup. o Improve location fudging. Apply random vector then quantize. o Hide internal POJO's from clients of com.android.location.provider.jar (NLP and FLP). Introduce wrappers ProviderRequestUnbundled and ProviderPropertiesUnbundled. o Introduce ProviderProperties to collapse all the provider accuracy/ bearing/altitude/power plumbing (that is deprecated anyway). o DELETE lots of code: DummyLocationProvider, o Rename the (internal) LocationProvider to LocationProviderBase. o Plumb pid, uid and packageName throughout LocationManagerService#Receiver to support future features. TODO: The FLP and Geofencer have a lot of room to be more intelligent TODO: Documentation TODO: test test test Change-Id: Iacefd2f176ed40ce1e23b090a164792aa8819c55
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
e0fd693c6098f59004f9e96ad75c058e26c337b0 |
|
11-Jul-2012 |
Nick Pelly <npelly@google.com> |
Improve geofencing: throttle location updates with distance to fence. Previously any geofence (proximity alert) would turn the GPS on at full rate. Now, we modify the GPS interval with the distance to the nearest geofence. A speed of 100m/s is assumed to calculate the next GPS update. Also o Major refactor of geofencing code, to make it easier to continue to improve. o Discard proximity alerts when an app is removed. o Misc cleanup of nearby code. There are other upcoming changes that make this a good time for some house-keeping. TODO: The new geofencing heuristics are much better than before, but still relatively naive. The next steps could be: - Improve boundary detection - Improve update thottling for large geofences - Consider velocity when throttling Change-Id: Ie6e23d2cb2b931eba5d2a2fc759543bb96e2f7d0
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
e15735a9e0c0b1448b68f2d6b3247404fc1df417 |
|
20-Sep-2010 |
Mike Lockwood <lockwood@android.com> |
LocationManager: Hide location provider and geocode provider APIs. Also rename Geocoder.isImplemented() to Geocoder.isPresent() BUG: 3000738 BUG: 3001413 Change-Id: I56bb4e9a9c59f8b79de585eeb168f74c3ff1a853 Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
01ac80b715881db22bde8b31633dd8a4dc375389 |
|
22-May-2010 |
Mark Vandevoorde <mtv@google.com> |
Add Geocorder.isImplemented() The Geocorder interface is not part of the Android core. It requires a backend service which may or may not be available on a device. The new isImplemented static method allows apps to discover whether the Geocorder is in fact available on the device. Change-Id: I2b5cf7bcc9cce4766bcbb156e91edf34b01f9296
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
03ca216ac19ea4e7afcb183c20c7c780f0d97756 |
|
01-Apr-2010 |
Mike Lockwood <lockwood@android.com> |
New Location Manager APIs for Criteria based requests and single shot mode. Use MS-Assisted mode for single shot GPS fixes if it is supported. Add finer grained control over accuracy to the android.location.Criteria class and location criteria logic from LocationManager to LocationManagerService Change-Id: I156b1f6c6a45d255c87ff917cf3e9726a6d7a75b Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
a4903f254b4711c8fc0ac5f7e3d605f4dce34f35 |
|
17-Feb-2010 |
Mike Lockwood <lockwood@android.com> |
Add passive location provider. The passive location provider allows receiving location updates without actually triggering them. This allows an application to receive location updates that are being generated due to other clients of the location manager. Change-Id: Ibf7a96b089c56875d4f62d3210252ae8d9f32768 Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
d03ff94fe58045b5bd1dd783fb98026778a4265d |
|
09-Feb-2010 |
Mike Lockwood <lockwood@android.com> |
Clean up interface between LocationManagerService and the location providers: LocationManagerService now uses new Java interface LocationProviderInterface rather than LocationProviderProxy to refer to location providers internally. LocationProviderProxy and the ILocationProvider binder interface are only used for location providers implemented as services (NetworkLocationProvider) Built-in location providers (GpsLocationProvider and mock providers) now just implement LocationProviderInterface rather than using a Binder interface and proxy object. Delete obsolete and unused TestLocationProvider class. Change-Id: Id800e7c1864f7c666f8e37125c05896493b9c8c4 Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
628fd6d9c11ed9806abebf34bc986247c106328f |
|
26-Jan-2010 |
Mike Lockwood <lockwood@android.com> |
Network Location unbundling: The network location and geocode provider services are now started on demand and their interfaces are now retrieved via bindService(). Remove obsolete LocationManager installLocationProvider() and installGeocodeProvider() methods. Add abstract class android.location.provider.GeocodeProvider to provide a public wrapper to the IGeocodeProvider Binder interface. Replaces the LocationManager.GeocodeProvider interface. Rename LocationProviderImpl to android.location.provider.LocationProvider. Move LocationManager.reportLocation() to android.location.provider.LocationProvider, so all methods related to external location providers are now all in one class. Avoid calling from the Location Manager Service into providers that are disabled so we do not start the network location service unnecessarily. Change-Id: If3ed2d5d62b83ba508006711d575cad09f4a0007 Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
34901409a404c8c66914c5a8ad0f29b1bcde0e78 |
|
04-Jan-2010 |
Mike Lockwood <lockwood@android.com> |
Cleanup and add public wrapper for IGeocodeProvider interface to prepare for network location unbundling. Change-Id: I6523d115b56dbf450121e73d48e151f200827eb4 Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
22d1f9fb23015471de6af1a70e40fb5c82ecb665 |
|
19-Aug-2009 |
Danke Xie <dankex@qualcomm.com> |
gps: Network initiated SUPL Initial contribution from Qualcomm. Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
fd6e5f0dda50e113db4ccc55338b6c4f09da37a4 |
|
21-May-2009 |
Mike Lockwood <lockwood@android.com> |
location: Replace ILocationCollector interface with new ILocationProvider method This change replaces ILocationCollector with a more general mechanism that passes locations received from a provider to all other providers. The network location provider now uses this to implement the location collector. In the future, this could be used to inject network locations to the GPS as aiding data. This change also removes the now obsolete permission INSTALL_LOCATION_COLLECTOR. Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
275555c8eb3fb5df6e7320873b88b77cdde85a9e |
|
01-May-2009 |
Mike Lockwood <lockwood@android.com> |
location: Add support for location providers outside of the system process. Also added new permissions android.permission.INSTALL_LOCATION_PROVIDER and android.permission.INSTALL_LOCATION_COLLECTOR to the public API. Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
48f17518223a2917fd82195004fbb206cb9a05a3 |
|
23-Apr-2009 |
Mike Lockwood <lockwood@android.com> |
location: Location Manager wakelock cleanup, phase 2 Remove two second timeout for wakelock when broadcasting events to location listeners. Instead, hold wakelock until receipt of the event is acknowledged, either via a Binder call or the PendingIntent.OnFinished interface. Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
a55c321329ae52a2db7a4f2bd36673a20b8f271d |
|
15-Apr-2009 |
Mike Lockwood <lockwood@android.com> |
location: Move geocoding support from ILocationProvider to a new interface. Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
e932f7f2a47b770c636443d411436bd29cc4bb43 |
|
06-Apr-2009 |
Mike Lockwood <> |
AI 144663: Use Binder interfaces between NetworkLocationManager and LocationManagerService. This fixes a hack that was added when NetworkLocationManager was moved out of the framework. This also lays the groundwork for supporting location providers outside of the system process. BUG=1729031 Automated import of CL 144663
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
4e50b78bda9cd58be61581d2886c88ff6348a1c1 |
|
03-Apr-2009 |
Mike Lockwood <> |
AI 144452: More Location Manager cleanup: Remove 1 Hz "heartbeat" polling of location providers from LocationManagerService. Now location providers report their location to LocationManagerService via LocationManager.setLocation() rather than waiting to be polled. This reduces GPS fix latency by up to one second. Remove LocationProvderImpl.getLocation(). Since we are no longer polling, this method is no longer necessary. BUG=1729031 Automated import of CL 144452
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
9637d474899d9725da8a41fdf92b9bd1a15d301e |
|
03-Apr-2009 |
Mike Lockwood <> |
AI 144372: Cleanup Settings support for enabling and disabling location providers: LocationManagerService now listens for changes to settings, making LocationManager.updateProviders() unnecessary. Removed LocationManager.updateProviders() Added Settings.Secure.setLocationProviderEnabled(), which is a thread-safe way of enabling or disabling a single location provider. This is safer than reading, modifying and writing the LOCATION_PROVIDERS_ALLOWED directly. BUG=1729031 Automated import of CL 144372
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
f013e1afd1e68af5e3b868c26a653bbfb39538f8 |
|
18-Dec-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Code drop from //branches/cupcake/...@124589
/frameworks/base/location/java/android/location/ILocationManager.aidl
|
54b6cfa9a9e5b861a9930af873580d6dc20f773c |
|
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
/frameworks/base/location/java/android/location/ILocationManager.aidl
|