获取PackageManager对象
PackageManager packageManager = getActivity().getPackageManager();
ResolveInfo
Intent
过滤器的返回值,通常记录了 AndroidManifest.xml 中的相关标签。
获取符合隐式Intent
的最优Activity
resolveActivity
返回的是ResolveInfo
对象。
if (packageManager.resolveActivity(/* Intent */, PackageManager.MATCH_DEFAULT_ONLY) == null) {
// 不存在与隐式Inten对应的Activity
}
获取所有符合隐式Intent
的多个Activity
Intent startupIntent = new Intent(Intent.ACTION_MAIN);
startupIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> activities = packageManager.queryIntentActivities(startupIntent, PackageManager.MATCH_DEFAULT_ONLY);
载入ResolveInfo
对象的标签
mResolveInfo
是与符合过滤器Intent.ACTION_MAIN
的Activity
相对应的,所以此处的Label
通常是应用名字。
PackageManager packageManager = getActivity().getPackageManager();
String appName = mResolveInfo.loadLabel(packageManager).toString();