Loading services/core/java/com/android/server/pm/PackageManagerService.java +37 −19 Original line number Diff line number Diff line Loading @@ -4716,16 +4716,24 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public ResolveInfo resolveIntent(Intent intent, String resolvedType, int flags, int userId) { try { Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "resolveIntent"); if (!sUserManager.exists(userId)) return null; flags = updateFlagsForResolve(flags, userId, intent); enforceCrossUserPermission(Binder.getCallingUid(), userId, false /*requireFullPermission*/, false /*checkShell*/, "resolve intent"); final List<ResolveInfo> query = queryIntentActivitiesInternal(intent, resolvedType, flags, userId); Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "queryIntentActivities"); final List<ResolveInfo> query = queryIntentActivitiesInternal(intent, resolvedType, flags, userId); Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); final ResolveInfo bestChoice = chooseBestActivity(intent, resolvedType, flags, query, userId); if (isEphemeralAllowed(intent, query, userId)) { Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "resolveEphemeral"); final EphemeralResolveInfo ai = getEphemeralResolveInfo(intent, resolvedType, userId); if (ai != null) { Loading @@ -4735,8 +4743,12 @@ public class PackageManagerService extends IPackageManager.Stub { bestChoice.ephemeralInstaller = mEphemeralInstallerInfo; bestChoice.ephemeralResolveInfo = ai; } Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); } return bestChoice; } finally { Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); } } @Override Loading Loading @@ -5183,8 +5195,14 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public @NonNull ParceledListSlice<ResolveInfo> queryIntentActivities(Intent intent, String resolvedType, int flags, int userId) { try { Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "queryIntentActivities"); return new ParceledListSlice<>( queryIntentActivitiesInternal(intent, resolvedType, flags, userId)); } finally { Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); } } private @NonNull List<ResolveInfo> queryIntentActivitiesInternal(Intent intent, Loading Loading
services/core/java/com/android/server/pm/PackageManagerService.java +37 −19 Original line number Diff line number Diff line Loading @@ -4716,16 +4716,24 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public ResolveInfo resolveIntent(Intent intent, String resolvedType, int flags, int userId) { try { Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "resolveIntent"); if (!sUserManager.exists(userId)) return null; flags = updateFlagsForResolve(flags, userId, intent); enforceCrossUserPermission(Binder.getCallingUid(), userId, false /*requireFullPermission*/, false /*checkShell*/, "resolve intent"); final List<ResolveInfo> query = queryIntentActivitiesInternal(intent, resolvedType, flags, userId); Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "queryIntentActivities"); final List<ResolveInfo> query = queryIntentActivitiesInternal(intent, resolvedType, flags, userId); Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); final ResolveInfo bestChoice = chooseBestActivity(intent, resolvedType, flags, query, userId); if (isEphemeralAllowed(intent, query, userId)) { Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "resolveEphemeral"); final EphemeralResolveInfo ai = getEphemeralResolveInfo(intent, resolvedType, userId); if (ai != null) { Loading @@ -4735,8 +4743,12 @@ public class PackageManagerService extends IPackageManager.Stub { bestChoice.ephemeralInstaller = mEphemeralInstallerInfo; bestChoice.ephemeralResolveInfo = ai; } Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); } return bestChoice; } finally { Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); } } @Override Loading Loading @@ -5183,8 +5195,14 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public @NonNull ParceledListSlice<ResolveInfo> queryIntentActivities(Intent intent, String resolvedType, int flags, int userId) { try { Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "queryIntentActivities"); return new ParceledListSlice<>( queryIntentActivitiesInternal(intent, resolvedType, flags, userId)); } finally { Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); } } private @NonNull List<ResolveInfo> queryIntentActivitiesInternal(Intent intent, Loading