2

嗨,我的 sd 上有一个应用程序(未安装,只是存储在那里),我如何通过提供应用程序的路径来获取有关它的信息。例如,我的下载文件夹中有 pandora.apk,所以路径是 /sdcard/download/pandora.apk 知道该路径我如何获得它的图标。谢谢你的帮助

我试过这段代码,但得到一个空指针异常

final PackageManager pm = context.getPackageManager();
PackageInfo packageInfo = pm.getPackageArchiveInfo("/sdcard/download/pandora.apk", 0);
Drawable icOn = packageInfo.applicationInfo.loadIcon(context.getPackageManager());
4

1 回答 1

4

它已经在这里回答了。如何在我的文件管理器中显示 apk 的图标

if (file.getPath().endsWith(".apk")) {
String filePath = file.getPath();
PackageInfo packageInfo = context.getPackageManager().getPackageArchiveInfo(filePath, PackageManager.GET_ACTIVITIES);
ApplicationInfo appInfo = packageInfo.applicationInfo;
if (Build.VERSION.SDK_INT >= 8) {
    appInfo.sourceDir = filePath;
    appInfo.publicSourceDir = filePath;
}
Drawable icon = appInfo.loadIcon(context.getPackageManager());
bmpIcon = ((BitmapDrawable) icon).getBitmap();
}
于 2011-12-17T21:04:15.530 回答