Fix crash in Volantis because there is not FLP support.
b/16690237
Change-Id: Ie2dd159ad4e9b5cf4b3e2e66023b456927f18130
diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java
index 132aa55..28a6917 100644
--- a/services/core/java/com/android/server/LocationManagerService.java
+++ b/services/core/java/com/android/server/LocationManagerService.java
@@ -482,8 +482,11 @@
}
// bind to fused hardware provider if supported
- FlpHardwareProvider flpHardwareProvider = FlpHardwareProvider.getInstance(mContext);
+ // in devices without support, requesting an instance of FlpHardwareProvider will raise an
+ // exception, so make sure we only do that when supported
+ FlpHardwareProvider flpHardwareProvider;
if (FlpHardwareProvider.isSupported()) {
+ flpHardwareProvider = FlpHardwareProvider.getInstance(mContext);
FusedProxy fusedProxy = FusedProxy.createAndBind(
mContext,
mLocationHandler,
@@ -495,6 +498,7 @@
Slog.e(TAG, "Unable to bind FusedProxy.");
}
} else {
+ flpHardwareProvider = null;
Slog.e(TAG, "FLP HAL not supported");
}
@@ -505,7 +509,7 @@
com.android.internal.R.array.config_locationProviderPackageNames,
mLocationHandler,
gpsProvider.getGpsGeofenceProxy(),
- flpHardwareProvider.getGeofenceHardware());
+ flpHardwareProvider != null ? flpHardwareProvider.getGeofenceHardware() : null);
if (provider == null) {
Slog.e(TAG, "Unable to bind FLP Geofence proxy.");
}