Don't bootloop if GNSS is unavailable.

Bug: 231740141
Test: build and flash a "car" device without GNSS
Change-Id: I0891812f6c83fb1f000d5aeccf5f6b9d2e197dc3
Merged-In: I0891812f6c83fb1f000d5aeccf5f6b9d2e197dc3
(cherry picked from commit 2886705fa5)
This commit is contained in:
Tomasz Wasilczyk
2022-05-06 12:57:01 -07:00
committed by Gaurav Sarode
parent ff1b7dc538
commit eb7af16f4a
2 changed files with 8 additions and 0 deletions

View File

@@ -116,6 +116,11 @@ public final class GnssTimeUpdateService extends Binder {
Log.d(TAG, "requestGnssTimeUpdates()");
}
if (!mLocationManager.hasProvider(LocationManager.GPS_PROVIDER)) {
Log.e(TAG, "GPS provider does not exist on this device");
return;
}
// Location Listener triggers onLocationChanged() when GNSS data is available, so
// that the getGnssTimeMillis() function doesn't need to be continuously polled.
mLocationListener = new LocationListener() {

View File

@@ -85,6 +85,9 @@ public final class GnssTimeUpdateServiceTest {
when(mMockContext.getSystemService(AlarmManager.class))
.thenReturn(mMockAlarmManager);
when(mMockLocationManager.hasProvider(LocationManager.GPS_PROVIDER))
.thenReturn(true);
LocalServices.addService(LocationManagerInternal.class, mLocationManagerInternal);
mGnssTimeUpdateService =