String apkPath = apk.getAbsolutePath();
Log.i(getClass().getName(), "addApk(): apkPath = " + apkPath);
PackageInfo localPackageInfo = pm.getPackageArchiveInfo(apkPath, 0);
localPackageInfo.applicationInfo.sourceDir = apkPath;//! null point exception
无法获取apk的图标,名称,版本等。我也尝试了魔术数字8192而不是0,但也不起作用。 任何人有任何建议吗? Thx提前!从SD卡文件获取apk信息
我改变了我的代码如下:
PackageInfo pi = pm.getPackageArchiveInfo(apkPath, PackageManager.GET_ACTIVITIES);
if (pi != null) {
ApplicationInfo ai = pi.applicationInfo;
Drawable appIcon = pm.getApplicationIcon(ai);
String appName = pm.getApplicationLabel(ai).toString();
String appVersion = pi.versionName;
String pkgName = ai.packageName;
Log.i(getClass().getName(), "pkgName = " + pkgName + ", appName = " + appName + ", appVersion = " + appVersion);
adapter.add(new InstallItem(pkgName, appIcon, appName, appVersion));
}
,并得到这样的输出:
PKGNAME = com.chaozh.iReaderFree,APPNAME = com.chaozh.iReaderFree,appVersion = 1.3 .2.0 ...
正如您在此处看到的,我无法获取应用程序名称,其图标始终是默认的相同图标。 我厌倦了其他安装程序在市场上,他们的工作很好,所以任何一个告诉我该怎么做?谢谢。
一些简单的得到任何应用程序的图标pkg的图标和名称已正确显示,但其大多数图标仍然是默认的,名称是pkgName。 thx都一样。 – thecr0w