package com.jackpf.apkdownloader.Entity; import java.io.File; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Build; public class ApkFile { /** * File */ private File file; /** * Icon */ private Bitmap icon; /** * Constructor * * @param context * @param file */ public ApkFile(Context context, File file) { this.file = file; String filePath = file.getPath(); PackageInfo packageInfo = context.getPackageManager().getPackageArchiveInfo(filePath, PackageManager.GET_ACTIVITIES); if(packageInfo != null) { ApplicationInfo appInfo = packageInfo.applicationInfo; if (Build.VERSION.SDK_INT >= 8) { appInfo.sourceDir = filePath; appInfo.publicSourceDir = filePath; } Drawable icon = appInfo.loadIcon(context.getPackageManager()); this.icon = ((BitmapDrawable) icon).getBitmap(); } } @Override public boolean equals(Object o) { return o instanceof ApkFile && ((ApkFile) o).getFile().equals(getFile()); } /** * Get file * * @return */ public File getFile() { return file; } /** * Get icon * * @return */ public Bitmap getIcon() { return icon; } }