android Launcher之获取安装的app列表的两种方法
在开发中 ,有时候会遇到获取当前安装应用的列表这种需求,现在就来讲解下实现它的两种方法
1.通过PackageInfo获取:public static List<PackageInfo> getAllApps(Context context) { List<PackageInfo> apps = new ArrayList<PackageInfo>(); PackageManager pManager = context.getPackageManager(); // 获取手机内所有应用 List<PackageInfo> packlist = pManager.getInstalledPackages(0); for (int i = 0; i < packlist.size(); i++) { PackageInfo pak = (PackageInfo) packlist.get(i); // if()里的值如果<=0则为自己装的程序,否则为系统工程自带 if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM) <= 0) { // 添加自己已经安装的应用程序 // apps.add(pak); } else{ // 系统应用 } apps.add(pak); } return apps; }
2.通过使用ResolveInfo获取:
public void loadAllAppsByBatch() {
PackageManager packageManager = mContext.getPackageManager();
List apps = null;
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
apps = packageManager.queryIntentActivities(mainIntent, 0);
for (int i = 0; i < apps.size(); i++) {
String packageName = apps.get(i).activityInfo.applicationInfo.packageName;
String title = apps.get(i).loadLabel(packageManager).toString();
Drawable icon = null;
if(title == null){
title = apps.get(i).activityInfo.name;
}
ActivityInfo info = apps.get(i).activityInfo;
icon = getFullResIcon(info);
datas.add(new PakageMod(packageName,title,icon));
}
}
更多相关文章
- Android(安卓)4.4从图库选择图片,获取图片路径并裁剪
- Android系列之SQLite与Android(安卓)Studio的数据交互
- android获取本地图片或拍照图片
- Android(安卓)获取屏幕的多种宽高信息的示例代码
- android 获得手机号相关
- Android(安卓)获取按钮Button的高度、宽度、坐标
- 硬件访问服务2之让Android应用程序访问C库
- Android动态获取权限,多组权限
- Android通讯录管理(获取联系人、通话记录、短信消息)(二)