package com.woshiku.deleapp.enginee;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import com.woshiku.deleapp.domian.AppInfo;
public class AppInfos {
public static List<AppInfo> getAppInfos(Context context){
List<AppInfo> packageAppInfos = new ArrayList<AppInfo>();
//获取到包的管理者
PackageManager packageManager = context.getPackageManager();
//获取到安装包
List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0);
for (PackageInfo installedPackage : installedPackages) {
AppInfo appInfo = new AppInfo();
//获取到应用程序的图标
Drawable drawable = installedPackage.applicationInfo.loadIcon(packageManager);
appInfo.setAppIcon(drawable);
//获取到应用程序的名字
String apkName = installedPackage.applicationInfo.loadLabel(packageManager).toString();
appInfo.setAppName(apkName);
//获取到应用程序的包名
String packageName = installedPackage.packageName;
appInfo.setAppPackageName(packageName);
//获取到apk资源的路径
String sourceDir = installedPackage.applicationInfo.sourceDir;
File file = new File(sourceDir);
//apk的长度
long apkSize = file.length();
appInfo.setAppSize(apkSize);
System.out.println("---------------------------");
System.out.println("程序的名字:" + apkName);
System.out.println("程序的包名:" + packageName);
System.out.println("程序的大小:" + apkSize);
//获取到安装应用程序的标记
int flags = installedPackage.applicationInfo.flags;
if((flags & ApplicationInfo.FLAG_SYSTEM) !=0 ){
//表示系统app
appInfo.setAppSource(false);
}else{
//表示用户app
appInfo.setAppSource(true);
}
if((flags& ApplicationInfo.FLAG_EXTERNAL_STORAGE) !=0 ){
//表示在sd卡
appInfo.setAppRom(false);
}else{
//表示内存
appInfo.setAppRom(true);
}
packageAppInfos.add(appInfo);
}
return packageAppInfos;
}
}
|
|