我使用以下代码 fragment 来获取 SD 卡上的一些 APK 的应用程序名称和图标。
PackageInfo packageInfo = packageManager.getPackageArchiveInfo(apkPath, 0);
ApplicationInfo appInfo = packageInfo.applicationInfo;
Drawable appIcon = appInfo.loadIcon(packageManager);
String appName = appInfo.loadLabel(packageManager).toString();
我可以访问包名称,但 loadIcon 返回所有 apk 的默认 Android 应用程序图标,而 loadLabel 返回包名称(不是应用程序标签) )。
我还在 logcat 中收到以下警告消息:
Failure retrieving icon 0x7f020005 in package com.sample.radio
Failure retrieving text 0x7f050000 in package com.taskkiller.demo
我正在运行 Android 2.2,任何指示将不胜感激。谢谢。
最佳答案
在创建appIcon、AppName之前,您可能需要添加两行:
PackageManager pm = getPackageManager();
PackageInfo pi = pm.getPackageArchiveInfo(APKFilePath, 0);
// NEW LINES
pi.applicationInfo.sourceDir = APKFilePath;
pi.applicationInfo.publicSourceDir = APKFilePath;
String AppName = (String)pi.applicationInfo.loadLabel(pm);
Drawable appIcon=pm.getApplicationIcon(pi.applicationInfo);
关于android - 无法从 SD 卡上的 APK 访问资源。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6866463/