Android开发获取系统中已安装程序信息的方法-创新互联

本文实例讲述了Android开发获取系统中已安装程序信息的方法。分享给大家供大家参考,具体如下:

创新互联服务项目包括宽城网站建设、宽城网站制作、宽城网页制作以及宽城网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,宽城网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到宽城省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
public class AppInfoParser {
  private static String tag = "AppInfoParser";
  public static List getAppInfos(Context context){
   //首先获取到包的管理者
    PackageManager packageManager = context.getPackageManager();
    //获取到所有的安装包
    List installedPackages = packageManager.getInstalledPackages(0);
    ArrayList appInfos = new ArrayList<>();
    for (PackageInfo installedPackage : installedPackages) {
      AppInfo appInfo = new AppInfo();
      //程序包名
      String packageName = installedPackage.packageName;
      appInfo.setPackageName(packageName);
      //获取到图标
      Drawable icon = installedPackage.applicationInfo.loadIcon(packageManager);
      appInfo.setIcon(icon);
      //获取到应用的名字
      String appName = installedPackage.applicationInfo.loadLabel(packageManager).toString();
      appInfo.setAppName(appName);
      //获取到安装包的路径
      String sourceDir = installedPackage.applicationInfo.sourceDir;
      File file = new File(sourceDir);
      //获取到安装apk的大小
      long apkSize = file.length();
      //格式化apk的大小
      appInfo.setApkSize(Formatter.formatFileSize(context,apkSize));
      int flags = installedPackage.applicationInfo.flags;
      //判断当前是否是系统app
      if((flags & ApplicationInfo.FLAG_SYSTEM) !=0){
        //那么就是系统app
        appInfo.setUserApp(false);
      }else{
        //那么就是用户app
        appInfo.setUserApp(true);
      }
      if((flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE)!=0){
       //那么当前安装的就是sd卡
        appInfo.setSD(true);
      }else{
        //那么就是手机内存
        appInfo.setSD(false);
      }
      appInfos.add(appInfo);
    }
    return appInfos;
  }
}


新闻名称:Android开发获取系统中已安装程序信息的方法-创新互联
URL标题:http://pwwzsj.com/article/dcicdg.html