您的位置:首页 > 其它

获取已安装应用列表

2016-11-28 14:07 316 查看
/**
* @return 用户安装的应用
*/
private List<App> getApps() {
List<App> apps = new ArrayList<App>();
PackageManager pm = getPackageManager();
List<PackageInfo> packs = pm.getInstalledPackages(0);

for (PackageInfo pi : packs) {
//显示用户安装的应用程序,而不显示系统程序
if ((pi.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0 && (pi.applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 0) {
App app = new App();
// 图标
app.setAppIcon(((BitmapDrawable) pi.applicationInfo.loadIcon(pm)).getBitmap());
// 应用程序名称
app.setAppName(pi.applicationInfo.loadLabel(pm).toString());
// 应用程序包名
app.setAppPackageName(pi.applicationInfo.packageName);
apps.add(app);
}
}
return apps;
}


/**
* 获取已安装软件的信息
*/
public static List<App> getAppList(Activity activity) {

List<App> appInfos = new ArrayList<>();

PackageManager pm = activity.getPackageManager();
List<PackageInfo> packageInfos = pm.getInstalledPackages(0);
for (PackageInfo packageInfo : packageInfos) {
if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0 && (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 0) {
App appInfo = new App();
// 应用程序名称
appInfo.setAppName(packageInfo.applicationInfo.loadLabel(pm).toString());

// 应用程序版本
appInfo.setAppVersion(packageInfo.versionName);

// 应用大小
File file = new File(packageInfo.applicationInfo.publicSourceDir);
if (file != null) {
DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
String fileSize = df.format(((float) file.length()) / 1024.0f / 1024.0f);
appInfo.setAppSize(Float.parseFloat(fileSize));
}
appInfos.add(appInfo);
}
}
return appInfos;
}


第一个:

ActivityManager activityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List< ActivityManager.RunningTaskInfo > taskInfo = activityManager.getRunningTasks(1);
ComponentName componentInfo = taskInfo.get(0).topActivity;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  应用列表