无法从 SD 卡上的 APK 访问资源。

发布于 2024-11-27 00:41:37 字数 660 浏览 0 评论 0原文

我使用以下代码片段获取 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,任何指针将不胜感激。谢谢。

I am using the following snippet to get the application name and icon of few of the APKs on my SD Card.

PackageInfo packageInfo = packageManager.getPackageArchiveInfo(apkPath, 0);
ApplicationInfo appInfo = packageInfo.applicationInfo;
Drawable appIcon = appInfo.loadIcon(packageManager);
String appName = appInfo.loadLabel(packageManager).toString();

I am able to access the package name but the loadIcon returns the default Android application icon for all the apks and the loadLabel returns the package name (Not the application label).

I also get the following warning messages in logcat:

Failure retrieving icon 0x7f020005 in package com.sample.radio
Failure retrieving text 0x7f050000 in package com.taskkiller.demo

I am running Android 2.2, any pointers will be appreciated. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ら栖息 2024-12-04 00:41:37

在创建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);

You may need to add two lines before creating 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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文