diff options
| -rw-r--r-- | services/core/java/com/android/server/location/GnssLocationProvider.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java index b324002e589c..3bd64467bca6 100644 --- a/services/core/java/com/android/server/location/GnssLocationProvider.java +++ b/services/core/java/com/android/server/location/GnssLocationProvider.java @@ -1328,6 +1328,14 @@ public class GnssLocationProvider implements LocationProviderInterface { } else if (!mStarted) { // start GPS startNavigating(singleShot); + } else { + // GNSS Engine is already ON, but no GPS_CAPABILITY_SCHEDULING + mAlarmManager.cancel(mTimeoutIntent); + if (mFixInterval >= NO_FIX_TIMEOUT) { + // set timer to give up if we do not receive a fix within NO_FIX_TIMEOUT + // and our fix interval is not short + mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, + SystemClock.elapsedRealtime() + NO_FIX_TIMEOUT, mTimeoutIntent); } } } else { updateClientUids(new WorkSource()); |