diff options
| -rw-r--r-- | services/core/java/com/android/server/location/LocationManagerService.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/location/LocationManagerService.java b/services/core/java/com/android/server/location/LocationManagerService.java index 1cc958b0f529..115421db4d31 100644 --- a/services/core/java/com/android/server/location/LocationManagerService.java +++ b/services/core/java/com/android/server/location/LocationManagerService.java @@ -44,6 +44,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.app.ActivityManager; +import android.app.ActivityManagerInternal; import android.app.AppOpsManager; import android.app.PendingIntent; import android.app.compat.CompatChanges; @@ -770,6 +771,12 @@ public class LocationManagerService extends ILocationManager.Stub implements public void registerLocationListener(String provider, LocationRequest request, ILocationListener listener, String packageName, @Nullable String attributionTag, String listenerId) { + ActivityManagerInternal managerInternal = + LocalServices.getService(ActivityManagerInternal.class); + if (managerInternal != null) { + managerInternal.logFgsApiBegin(ActivityManager.FOREGROUND_SERVICE_API_TYPE_LOCATION, + Binder.getCallingUid(), Binder.getCallingPid()); + } CallerIdentity identity = CallerIdentity.fromBinder(mContext, packageName, attributionTag, listenerId); int permissionLevel = LocationPermissions.getPermissionLevel(mContext, identity.getUid(), @@ -927,6 +934,12 @@ public class LocationManagerService extends ILocationManager.Stub implements @Override public void unregisterLocationListener(ILocationListener listener) { + ActivityManagerInternal managerInternal = + LocalServices.getService(ActivityManagerInternal.class); + if (managerInternal != null) { + managerInternal.logFgsApiEnd(ActivityManager.FOREGROUND_SERVICE_API_TYPE_LOCATION, + Binder.getCallingUid(), Binder.getCallingPid()); + } for (LocationProviderManager manager : mProviderManagers) { manager.unregisterLocationRequest(listener); } |