Merge "Adding in hook for FGS metrics logging in LocationManagerService" into udc-dev

This commit is contained in:
Kunal Malhotra
2023-03-25 02:35:57 +00:00
committed by Android (Google) Code Review

View File

@@ -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);
}