Android 获取手机里APP的信息


public class MyAppInfo {
    private Drawable icon;
    private String appName;
    private String packageName;
    private String versionName;
    private String appDate;
    private String codeSize;
    private String publicSourceDir;



    public MyAppInfo() {
    }

    public String getPublicSourceDir() {
        return publicSourceDir;
    }

    public void setPublicSourceDir(String publicSourceDir) {
        this.publicSourceDir = publicSourceDir;
    }

    public String getCodeSize() {
        return codeSize;
    }

    public void setCodeSize(String codeSize) {
        this.codeSize = codeSize;
    }

    public String getAppDate() {
        return appDate;
    }

    public void setAppDate(String appDate) {
        this.appDate = appDate;
    }

    public String getVersionName() {
        return versionName;
    }

    public void setVersionName(String versionName) {
        this.versionName = versionName;
    }

    public String getPackageName() {
        return packageName;
    }

    public void setPackageName(String packageName) {
        this.packageName = packageName;
    }

    public Drawable getIcon() {
        return icon;
    }

    public void setIcon(Drawable icon) {
        this.icon = icon;
    }

    public String getAppName() {
        return appName;
    }

    public void setAppName(String appName) {
        this.appName = appName;
    }

}




public class GetAppInfo {

    public static List getAppInfo(Context context) {
        List<MyAppInfo> mData = new ArrayList<>();
        PackageManager pm = context.getPackageManager();
        List<PackageInfo> list = pm.getInstalledPackages(0);
        for (PackageInfo app : list) {
            //创建要返回的集合对象
            MyAppInfo myAppInfo = new MyAppInfo();
            //获取包名
            String packageName = app.applicationInfo.packageName;
            myAppInfo.setPackageName(packageName);
            //获取应用图片
            Drawable appIcon = app.applicationInfo.loadIcon(pm);
            myAppInfo.setIcon(appIcon);
            //获取应用名称
            String appName = (String) app.applicationInfo.loadLabel(pm);
            myAppInfo.setAppName(appName);
            try {
                //获取应用的版本号
                PackageInfo packageInfo = pm.getPackageInfo(packageName, 0);
                String versionName = packageInfo.versionName;
                myAppInfo.setVersionName(versionName);
                //应用第一次安装的时间
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                long appDate1 = packageInfo.firstInstallTime;
                String appDate = String.valueOf(dateFormat.format(appDate1));
                myAppInfo.setAppDate(appDate);
                //获取应用的大小
                String dir = app.applicationInfo.publicSourceDir;
                String cs = String.valueOf(new File(dir).length());
                long size = Long.parseLong(cs);
                String codeSize = size + "";
                myAppInfo.setCodeSize(codeSize);
                //获取APK文件的路径
                String publicSourceDir = app.applicationInfo.publicSourceDir;
                myAppInfo.setPublicSourceDir(publicSourceDir);
            } catch (Exception e) {
                e.printStackTrace();
            }
            mData.add(myAppInfo);
        }
        return mData;
    }
}





猜你喜欢

转载自blog.csdn.net/try_zp_catch/article/details/80271436