106 Commits

Author SHA1 Message Date
Victoria Lease
4cd0a50b26 Fires geofence if the device is already in the geofence area.
Process the location of the fence as soon as it is added.

Clarified how the distance to the fence was being used.

Added more debug logs (disabled by default).

Fixed a numerical overflow in the location request if the
distance to the border of the nearest fence was greater
than about 2000Km.

Removed a useless call to request location updates passively
when the geofence manager is initialized.  We have no need
of location updates unless there are active geofences.
The effect of this call was undone the next time the location
request was updated anyhow.

Changed the location request to always request a fastest update
interval of 0 which accomplishes the goal of passively
monitoring all updates.  This does not increase the power
consumption because we are conservative about choosing
a minimum location update interval.  We're simply stating
that the geofence manager is willing to handle a higher
report rate which is very important.

Subject location to a "freshness test" - only use relatively
recent locations for geofence testing.

Run all geofence updates on the handler and avoid making
multiple redundant calls into the location manager when
updating the provider requirements.

Ensure that we update geofences correctly even if we don't
know the initial location of the device at the time the
geofence is created.

Pin update interval value to the range [1m..2hr].

Distance to fence is now distance to fence's border, not
distance to fence's centre.

Bug: 7466334
Change-Id: I28e571ecfc508d5ceb9bb2afcabaaf05abb26369
2012-11-06 10:01:33 -08:00
Victoria Lease
c0c0c0e612 Merge "Multiuser love for LocationManager" into jb-mr1-dev 2012-10-09 12:22:03 -07:00
Victoria Lease
b711d57ca4 Multiuser love for LocationManager
LocationManagerService now keeps track of the current user ID and
denies location requests made by all but the foreground user.

Additionally, location settings are now user-specific, rather than
global to the device. Location provider services now run as specific
users, and when the device's foreground user changes, we rebind to
appropriately-owned providers.

Bug: 6926385
Bug: 7247203
Change-Id: I346074959e96e52bcc77eeb188dffe322b690879
2012-10-08 17:19:43 -07:00
Laurent Tu
60ec50a850 Last position improvements for GeofenceManager
Use LocationManager.getLastPosition() in GeofenceManager instead of
keeping track of it manually. Keeping track of it in GeofenceManager
doesn't handle the case where we install a fence, and cross it just
after that based on the last position before we installed the fence.

Also shuffle around some code in LocationManagerService to remember the
last position even if there are no UpdateRecords. This is useful in the
GeofenceManager for example.

Bug: 7047435
Change-Id: Ia8acc32e357ecc2e1bd689432a5beb1ea7dcd1c7
2012-10-04 17:23:12 -07:00
Victoria Lease
83762d22c9 multiuser support for LocationBlacklist
This allows primary/secondary users to have different "Google
Location Services" preferences. It also reenables LocationBlacklist,
which is fixed elsewhere.

Bug: 7213502
Bug: 7248239
Change-Id: I94837682f95920c225c00b7da2de6dd1418a673e
2012-10-04 09:46:52 -07:00
Victoria Lease
5c24fd0342 Avoid NPE in GpsLocationProvider
Oops, looks like we were spinning up a secondary thread to run some
tasks that will just happen on the main thread regardless. Removed
the secondary thread and fixed up initialisation order regarding
mHandler and things that post to it. Also reordered GPS and
PASSIVE provider initialisation order since GPS depends on PASSIVE.

This should be both safer and easier to read.

Bug: 7248029
Change-Id: I8630caf0a7bd1b2c401603075676f13dda5be4fa
2012-10-01 12:04:37 -07:00
Victoria Lease
b319d5de19 temporarily disable blacklisting
Bug: 7248239
Change-Id: I2ef28fa0d6890a127fc424e58a148fe1fb15b683
2012-09-27 18:24:27 -07:00
Philip Milne
4118012da9 Fix for bug: #7173350. elapsedRealtimeNano() -> elapsedRealtimeNanos()
Change-Id: Ie38952bbaace080e81e41e61350cda172951d548
2012-09-26 11:29:25 -07:00
Jeff Brown
bf6f6f9de7 Update references to migrated global settings.
Fixed one setting that was migrated but not marked deprecated.

Removed a hidden setting that is no longer used by the new
power manager service.

Bug: 7231172
Change-Id: I332f020f876a18d519a1a20598a172f1c98036f7
2012-09-25 15:27:51 -07:00
Philip Milne
bc391d58c8 Merge "Revert "Fix for bug: #7173350. elapsedRealtimeNano() -> elapsedRealtimeNanos()"" into jb-mr1-dev 2012-09-24 11:41:53 -07:00
Philip Milne
53fe756772 Revert "Fix for bug: #7173350. elapsedRealtimeNano() -> elapsedRealtimeNanos()"
This reverts commit 2f6d8829524dfca3a77e9a57c3b9c3862209877d

Change-Id: Id5af767a09fc319127c4ebef837c5b7a7f75cb01
2012-09-24 11:38:29 -07:00
Philip Milne
b00df8e929 Merge "Fix for bug: #7173350. elapsedRealtimeNano() -> elapsedRealtimeNanos()" into jb-mr1-dev 2012-09-24 11:02:31 -07:00
Philip Milne
2f6d882952 Fix for bug: #7173350. elapsedRealtimeNano() -> elapsedRealtimeNanos()
Change-Id: I71c24ea10093ece07a0780e97bc641ff548c1a44
2012-09-21 15:54:41 -07:00
Victoria Lease
09016ab4dd Do not use passive GPS data for COARSE only apps.
FusionEngine now attaches a secondary location that has never seen
GPS data to its result. LocationFudger uses the GPS-less location so
that COARSE apps never see data from the GPS provider.

When the previous location is updated, the previous GPS-less location
is carried over if the location update was GPS-only.

Additionally, apps without FINE permission are not notified when GPS
location changes, and any attempt to use GPS_PROVIDER without FINE
permission is met by a stern SecurityException.

Bug: 7153659
Change-Id: I12f26725782892038ce1133561e1908d91378a4a
2012-09-21 13:45:41 -07:00
Victoria Lease
df9ec6171f Secure setting for LocationFudger's accuracy
This replaces the ACCURACY_METERS constant and all derived values with
a secure setting. This value defaults to 2km and has a hardcoded floor
of 500m.

Bug: 6982024
Change-Id: Ibf97ab57145abf28c4a9747444f40250adddf23c
2012-09-12 17:06:07 -07:00
Christopher Tate
c09cdce1b0 Update airplane-mode manipulation for the new Settings namespace
Quick Settings and global actions (aka longpress-Power) toggles are
included in this CL.  The Settings app manipulations are updated in
a different CL because that's a different git package.

Bug 7132230

Change-Id: I50838f5e8d7b25a750d2bcae90bf384b09816dbb
2012-09-10 16:50:57 -07:00
Dianne Hackborn
5ac72a2959 Improve multi-user broadcasts.
You can now use ALL and CURRENT when sending broadcasts, to specify
where the broadcast goes.

Sticky broadcasts are now correctly separated per user, and registered
receivers are filtered based on the requested target user.

New Context APIs for more kinds of sending broadcasts as users.

Updating a bunch of system code that sends broadcasts to explicitly
specify which user the broadcast goes to.

Made a single version of the code for interpreting the requested
target user ID that all entries to activity manager (start activity,
send broadcast, start service) use.

Change-Id: Ie29f02dd5242ef8c8fa56c54593a315cd2574e1c
2012-08-30 14:33:22 -07:00
Jeff Brown
028872fe07 Fix GpsLocationProvider wake lock book keeping.
The GpsLocationProvider typically acquires a wake lock
before sending a message to its handler then releases it
after the message has been handled.

There were two cases where messages might be removed from
the handler, resulting in the wake lock being released.

There were also two cases where background tasks were being
started while not holding a wake lock for the duration.

Fixed these issues and marked the GpsLocationProvider handler
as asynchronous too so that it doesn't accidentally get
blocked by traversals if it happens to share a thread with some UI.

Bug: 7057752
Change-Id: I8e12fc91ae943e84db068c08ec809879537503c6
2012-08-25 13:40:28 -07:00
Kevin Tang
40e1bafc37 Fix GPS provider thread blocked by NTP and XTRA
Currently, the NTP and XTRA downloads block on the GPS provider thread.
This could potentially block the next tasks for over a minute of time.
If the upcoming task happens to be AGPS, AGPS will time out.

Placed the NTP and XTRA downloads in separate threads.

Bug: 6980618

Change-Id: I57a6aaf5348212bc1246813f6d941da7d5b19136
2012-08-24 14:06:47 -07:00
Brian Muramatsu
b94b41f516 Listen for CONNECTIVITY_ACTION in GPS Provider
Bug: 7020678

The broadcast receiver in GpsLocationProvider now listens for
CONNECTIVITY_ACTION changes. Set the intent filter so that
it catches those actions and updates the network state.

Change-Id: I7efd393dfe2aa8b172dd6701d42ff9ed687648a2
2012-08-21 16:30:57 -07:00
Nick Pelly
4035f5a7c1 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
2012-08-17 15:25:16 -07:00
Nick Pelly
f2033e473a Fix regression from location changes: GPS battery tracking.
The client UID list wasn't being saved, so we never removed
client UID's. As a result apps get blamed for GPS even when
they are no longer using it.

Bug: 7007314
Change-Id: Idff3b7c8c0ee87b99c9bdd7bd20d8391d0b1ac0f
2012-08-17 11:56:39 -07:00
Nick Pelly
74fa7eabda Improve coarse locations.
Fix a couple of bugs, and modify the behavior of the random offset.

The random offset now slowly changes over time, to mitigate against
applications averaging out the offset over time while at a
grid boundary.

Change-Id: Iecffff29145b8c2b30d1eca1662cf9d3e8cff756
2012-08-16 15:22:24 -07:00
Nick Pelly
6fa9ad4afc 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
2012-08-10 14:57:09 -07:00
Brian Muramatsu
1715cb36d9 Control GPS logging with property
This allows users of the PDK to debug GPS issues.

Change-Id: I4aff12e124f4264abd1a0be012df4c431044189c
2012-08-09 17:14:13 -07:00
Nick Pelly
2eeeec248a Improve Location object.
Add getElapsedRealtimeNano():

Currently Location just has getTime() and setTime() based on UTC time.
This is entirely unreliable since it is not guaranteed monotonic.
There is a lot of code that compares fix age based on deltas -
and it is all broken in the case of a system clock change. System
clock can change when switching cellular networks (and in some
cases when switching towers).

Document the meaning of getAccuracy():
It is the horizontal, 95% confidence radius.

Make some fields mandatory if they are reported by a LocationProvider:

All Locations returned by a LocationProvider must include at the
minimum a lat, long, timestamps, and accuracy. This is necessary
to perform fused location. There are no public API's for applications
to feed locations into a location provider so this should not cause
any breakage.

If a LocationProvider does not fill in enough fields on a Location
object then it is dropped, and logged.

Bug: 4305998
Change-Id: I7df77125d8a64e174d7bc8c2708661b4f33461ea
2012-07-20 10:07:07 -07:00
Nick Pelly
7d4252171c Merge "Improve geofencing: throttle location updates with distance to fence." 2012-07-16 14:26:14 -07:00
Nick Pelly
e0fd693c60 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
2012-07-16 12:18:52 -07:00
Wink Saville
a639b311e9 Create telephony-common and mms-common
These have been created to reduce the size and complexity
of frameworks/base.

mms-common was created by moving all of
  frameworks/base/core/java/com/google/android/mms
to:
   frameworks/opt/mms

telephony-common was created by moving some of
   frameworks/base/telephony
to:
   frameworks/opt/telephony

Change-Id: If6cb3c6ff952767fc10210f923dc0e4b343cd4ad
2012-07-11 16:02:08 -07:00
Nick Pelly
00355d5a59 Make location providers upgradeable.
Use config_netowrkLocationProviderPackageName and
config_geocodeProviderPackageName as intial packages. If another
package exists (or is later installed) that also implements a
provider, and has the same signatures as the original providers,
and has a hgiher version number, then use that instead.

The old code used a funky fix of package name substring checks
and service checks that was broken and not upgradeable.

Bug: 6499445
Change-Id: Ic58f09cf85d31d9abf47707093e22f31dda25cf0
2012-05-29 13:36:46 +02:00
Nick Pelly
b041f23026 Increase interval threshold below which we just leave the GPS on.
Hot TTTF is about 5 seconds, so don't cycle the GPS hardware until
the interval is 10 seconds.

Also add some more dumpsys logging.

Bug: 6367964
Change-Id: I39402fc61f34458a1639c8814610a02606a8eb79
2012-05-07 17:12:25 -07:00
Daniel Lehmann
e024749830 am 8f30d219: am f0533f94: am 0e873700: Remove the country detector logging
* commit '8f30d2191eb88d577d6d2ba9874053cfea0091c8':
  Remove the country detector logging
2012-03-12 18:30:17 -07:00
Daniel Lehmann
f0533f9462 am 0e873700: Remove the country detector logging
* commit '0e87370077b322b3a88c345a44c6bf3d56617071':
  Remove the country detector logging
2012-03-12 18:24:41 -07:00
Daniel Lehmann
0e87370077 Remove the country detector logging
Bug:6156714
Change-Id: Id0ff60b0530142e2bce055ee8cf8dde94e974aa5
2012-03-12 17:04:17 -07:00
Jean-Baptiste Queru
973481d667 am ccd08b8d: am e939edb5: am f418738c: am d7fa7dee: Merge "Fixes update of extras Bundle in new Locations for GPS Provider"
* commit 'ccd08b8de9dc4c9cfaee93cbbcc7053cc9e8d96f':
  Fixes update of extras Bundle in new Locations for GPS Provider
2012-02-28 14:59:18 -08:00
Jean-Baptiste Queru
f418738c64 am d7fa7dee: Merge "Fixes update of extras Bundle in new Locations for GPS Provider"
* commit 'd7fa7deef9bc0cf22bf450fdb062327697c087c4':
  Fixes update of extras Bundle in new Locations for GPS Provider
2012-02-28 13:30:39 -08:00
Sean Barbeau
ced2b2c09a Fixes update of extras Bundle in new Locations for GPS Provider
This patch fixes the update of the extras Bundle in the Location object
each time the platform derives a new GPS location and passes it to
listening applications via LocationListener.onLocationChanged().

Sometime between Android 1.6 and 2.1 a bug was introduced that stopped
any extras calculated by the platform from being added into the Location
object, which means they were never passed up to any LocationListeners
for the GPS Provider.  This manifested as an issue where the number of
satellites used to derive a fix always reported “0” when retrieved from
Location.getExtras() (Issue 4810 on the Android Issues page -
http://code.google.com/p/android/issues/detail?id=4810).

Sample code to be used within
LocationListener.onLocationChanged(Location location) which demonstrates
this problem:

Bundle extras = location.getExtras();

Int numSats = extras.getInt("satellites");  //This always reports “0”
                                            //post 1.5, although in 1.5
                                            //it properly reported the
                                            //number of satellites used
                                            //to derive this location

The “satellites” extra key/value pair for Locations is defined in
http://developer.android.com/reference/android/location/Location.html#getExtras()

This patch modifies GPSLocationProvider.java to properly update the
Location object with the extras Bundle before the Location object is
passed to any listening applications, and therefore the number of
satellites used to derive a fix can now be retrieved properly through
location.getExtras() (as shown in sample code above).  Therefore, this
patch fixes Issue 4810.

Change-Id: Ief21056a3623269bb3149ec78ab92738a234f57f
Signed-off-by: Sean Barbeau <sjbarbeau@gmail.com>
2012-01-12 18:25:47 -05:00
Makoto Onuki
d73b79bb31 Cherry-picking Id45abeba and Ia065dec6 for MR1
-------------------------------------------------------
MCC detection fixes for CountryDetector

- Don't get and cache phone tpe at the initialization time.  At this point
TelephonyManager is probably not ready yet.

- Refresh MCC whenever we get the service state changed callback, even when
the state hasn't actually changed, in order to make sure we get refresh
country properly when MCC changes.

- Also remove the initialization of mPhoneStateListener, which prevented us from
registering phone state listener properly.

- Also fix tests which were already failing.

Bug 5670680

-------------------------------------------------------
Add logging to country detector logic

This is for debugging purposes to verify the effects of
change Id45abeba1b1e843053ac2c946861b439ca568de4.

Bug: 5670680
Change-Id: I238d953484e2c8135f7dac70fce8662c8300a286
2011-12-13 14:02:32 -08:00
Katherine Kuan
da123492de Add logging to country detector logic
This is for debugging purposes to verify the effects of
change Id45abeba1b1e843053ac2c946861b439ca568de4.

Bug: 5670680
Change-Id: Ia065dec6ba651e7e77205f812b7606b15eebdc17
2011-12-12 18:07:58 -08:00
Makoto Onuki
f9165b7e43 MCC detection fixes for CountryDetector
- Don't get and cache phone tpe at the initialization time.  At this point
TelephonyManager is probably not ready yet.

- Refresh MCC whenever we get the service state changed callback, even when
the state hasn't actually changed, in order to make sure we get refresh
country properly when MCC changes.

- Also remove the initialization of mPhoneStateListener, which prevented us from
registering phone state listener properly.

- Also fix tests which were already failing.

Bug 5670680

Change-Id: Id45abeba1b1e843053ac2c946861b439ca568de4
2011-12-09 17:55:18 -08:00
Mike Lockwood
2ffe0ad391 Always use fresh NTP time for GPS
This is especially important when AGPS is disabled

Bug: 5355661

Change-Id: I072dbe1ddf43aa24c8fc39b750040504a1633c53
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-10-25 09:47:05 -04:00
Mike Lockwood
2b15cb21b3 Resolve merge conflict for '75f1fdec':
GPS Provider Service changes

    GPS engine needs to receive network state changes from Android fw.

    Added db query for the current APN, also added a new parameter
    between JNI / HAL to the new method in AGpsRilInterface struct
    for gps engine to receive APN from GPSLocationService

Conflicts:
	services/java/com/android/server/location/GpsLocationProvider.java

Change-Id: I33c45027f1571493d3525324f62d199517c4960c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-08-04 11:40:25 -04:00
Mike Lockwood
75f1fdec3e am 0b3af353: am a82ee49a: am 8f5dd9ad: Merge "GPS Provider Service changes"
* commit '0b3af353dcf61177158934a11404cf2914038696':
  GPS Provider Service changes
2011-08-04 07:53:53 -07:00
Kevin Tang
a5fe6b2efe GPS Provider Service changes
GPS engine needs to receive network state changes from Android fw.

Added db query for the current APN, also added a new parameter
between JNI / HAL to the new method in AGpsRilInterface struct
for gps engine to receive APN from GPSLocationService

Change-Id: I62e35c948d2ac1961771d1a10581a3b8e695c05a
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-08-04 10:33:35 -04:00
Mike Lockwood
b7d95a46df am 21700fed: am 5f7203eb: am 5a27a754: am bd1dee94: Merge "gps: Adding ip address for AGps"
* commit '21700fedfe29f6a0a752d2bea46142038e69136c':
  gps: Adding ip address for AGps
2011-07-28 14:06:07 -07:00
Mike Lockwood
21700fedfe am 5f7203eb: am 5a27a754: am bd1dee94: Merge "gps: Adding ip address for AGps"
* commit '5f7203eb258503bc5d2ba29176bdf483a68a93b8':
  gps: Adding ip address for AGps
2011-07-28 14:04:13 -07:00
Stephen Li
8efd74dbed gps: Adding ip address for AGps
Change-Id: Ic590187d159853de2f1bd2912e159f0a00d8fb10
2011-07-28 16:50:45 -04:00
Mike Lockwood
3885228457 am f8d13e53: am bf676d46: am 7083ed44: am 0ff79e88: Merge "GPS: Changes to enable on-demand data call flow for CDMA connections"
* commit 'f8d13e535c3e6166c2386adac3b3a2f115d2b79d':
  GPS: Changes to enable on-demand data call flow for CDMA connections
2011-07-28 13:30:24 -07:00
Mike Lockwood
f8d13e535c am bf676d46: am 7083ed44: am 0ff79e88: Merge "GPS: Changes to enable on-demand data call flow for CDMA connections"
* commit 'bf676d460d1d1fc8923982006c38d0f6785daea8':
  GPS: Changes to enable on-demand data call flow for CDMA connections
2011-07-28 13:27:27 -07:00
Dianne Hackborn
130b0d2b26 Fix issue #4466531: onServiceConnected() not called after...
...apk reinstall; affects user privacy

Disconnecting a ServiceConnection after an app is torn down could
impact the bookkeeping of the same service if it has been started
for the app.

Also address issue #5073927: GSF process can't be killed

A new flag allows the systems location manager service to tell
the activity manager to not pull bound services up forever into
the visible adj level.

Change-Id: I2557eca0e4bd48f3b10007c40ec878e769fd96a8
2011-07-26 22:07:48 -07:00