获取应用信息列表:
private List<ResolveInfo> getResolveInfos(){
List<ResolveInfo> appList = null;
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
PackageManager pm = getPackageManager();
appList = pm.queryIntentActivities(intent, 0);
Collections.sort(appList, new ResolveInfo.DisplayNameComparator(pm));
return appList;
}
遍历应用列表,打印应用名称,包名,类名:
private void plintPkgAndCls(List<ResolveInfo> resolveInfos){
PackageManager packageManager = getPackageManager();
Log.i("pkg", "####################start######################");
for (int i = 0; i < resolveInfos.size(); i++) {
String pkg = resolveInfos.get(i).activityInfo.packageName;
String cls = resolveInfos.get(i).activityInfo.name;
String title = null;
try {
ApplicationInfo applicationInfo = packageManager.getPackageInfo(pkg, i).applicationInfo;
title = applicationInfo.loadLabel(packageManager).toString();
}catch (Exception e){
}
Log.i("pkg", title + ":"+pkg+"/"+cls);
}
Log.i("pkg", "#####################end#######################");
}
在onCreate中调用函数:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
plintPkgAndCls(getResolveInfos()); //调用函数打印包名类名
}