package com.android.server.pm;
public class LauncherAppsService extends SystemService {
1. 查询特定intent 所符合的Activity
private boolean hasDefaultEnableLauncherActivity(@NonNull String packageName) {
final PackageManagerInternal pmInt =
LocalServices.getService(PackageManagerInternal.class);
final Intent matchIntent = new Intent(Intent.ACTION_MAIN);
matchIntent.addCategory(Intent.CATEGORY_LAUNCHER);
matchIntent.setPackage(packageName);
final List<ResolveInfo> infoList = pmInt.queryIntentActivities(matchIntent,
matchIntent.resolveTypeIfNeeded(mContext.getContentResolver()),
PackageManager.MATCH_DISABLED_COMPONENTS, Binder.getCallingUid(),
getCallingUserId());
final int size = infoList.size();
for (int i = 0; i < size; i++) {
if (infoList.get(i).activityInfo.enabled) {
return true;
}
}
return false;
}
这段代码是Android系统服务的一部分,用于查询指定包名下的带有ACTION_MAIN和CATEGORY_LAUNCHER类别 Intent 的Activity。它遍历PackageManagerInternal返回的ResolveInfo列表,检查Activity是否启用,如果找到一个启用的Activity则返回true,否则返回false。
3180

被折叠的 条评论
为什么被折叠?



