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