ResolveInfo介绍:
IntentFilter的意图对解决所传回的信息。这部分收集的信息在AndroidManifest.xml的<intent>标签的对应。
例如:
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="com.action.resolveinfo"/>
</intent-filter>
通过ReslveInfo我们就可以轻松找到设置了这两个标签的Activity:
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory("com.action.resolveinfo");
PackageManager pm = getPackageManager();
List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
就得到了ResolveInfo的集合,我们就可以获取到每个Activity的信息了!
通过 ResolveInfo 获取具体信息方法:
Activity获取方法:resolve.activityInfo.name
Activity包名获取方法:resolve.activityInfo.packageName
App包名获取方法:resolve.activityInfo.applicationInfo.packageName
icon获取获取方法:resolve.loadIcon(packageManager)
应用名称获取方法:resolve.loadLabel(packageManager).toString()