summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mat Bevilacqua <matbev@google.com> 2025-01-08 13:39:53 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2025-01-08 13:39:53 -0800
commit5d35661d13407f76c4ac7f1475e76b220b3ea9be (patch)
treeee5afe7fc3f307dc5e55f6b822154ed6a6cc8410
parentdfe161dd0d42921d7ae1cfe9587ef9cd4eee3d41 (diff)
parentcc980a8e45d12f786f6400375d1c7840f8bc9dbf (diff)
Merge "Avoid crashing system server" into main
-rw-r--r--packages/FusedLocation/src/com/android/location/fused/FusedLocationProvider.java16
1 files changed, 13 insertions, 3 deletions
diff --git a/packages/FusedLocation/src/com/android/location/fused/FusedLocationProvider.java b/packages/FusedLocation/src/com/android/location/fused/FusedLocationProvider.java
index 068074ae1b89..8e52a00fe545 100644
--- a/packages/FusedLocation/src/com/android/location/fused/FusedLocationProvider.java
+++ b/packages/FusedLocation/src/com/android/location/fused/FusedLocationProvider.java
@@ -38,6 +38,7 @@ import android.location.provider.LocationProviderBase;
import android.location.provider.ProviderProperties;
import android.location.provider.ProviderRequest;
import android.os.Bundle;
+import android.util.Log;
import android.util.SparseArray;
import com.android.internal.annotations.GuardedBy;
@@ -301,8 +302,13 @@ public class FusedLocationProvider extends LocationProviderBase {
.setWorkSource(mRequest.getWorkSource())
.setHiddenFromAppOps(true)
.build();
- mLocationManager.requestLocationUpdates(mProvider, request,
- mContext.getMainExecutor(), this);
+
+ try {
+ mLocationManager.requestLocationUpdates(
+ mProvider, request, mContext.getMainExecutor(), this);
+ } catch (IllegalArgumentException e) {
+ Log.e(TAG, "Failed to request location updates");
+ }
}
}
}
@@ -311,7 +317,11 @@ public class FusedLocationProvider extends LocationProviderBase {
synchronized (mLock) {
int requestCode = mNextFlushCode++;
mPendingFlushes.put(requestCode, callback);
- mLocationManager.requestFlush(mProvider, this, requestCode);
+ try {
+ mLocationManager.requestFlush(mProvider, this, requestCode);
+ } catch (IllegalArgumentException e) {
+ Log.e(TAG, "Failed to request flush");
+ }
}
}