如何以编程方式从 sdcard/storage .apk 文件中获取 appicon?

Posted

技术标签:

【中文标题】如何以编程方式从 sdcard/storage .apk 文件中获取 appicon?【英文标题】:How to get appicon programmatically from sdcard/storage .apk file? 【发布时间】:2019-01-26 05:25:12 【问题描述】:

使用ApplicationInfo 我已经尝试过了,它运行良好,但它只显示已安装应用程序的应用程序图标。但我想以编程方式从文件路径(.apk 文件)中获取 appicon。

Drawable icon=applicationInfo.loadIcon(getPackageManager());

我想从 apk 文件中获取 appicon。此文件已存储在存储中。

那么有没有办法从 .apk 文件中获取图标/拇指,以便以编程方式显示 appicon?

【问题讨论】:

您到底想做什么?你想显示你的应用程序的图标或其他应用程序或 sd 卡中的 apk 图标吗?? 是的 @sourabhkaushik 我只想从 .apk 文件路径中以编程方式显示 appicon @pskink 错了 @VladyslavMatviienko 是的,很高兴知道... 【参考方案1】:

您可以从 APK 文件中获取该信息:

 String apkPath = "path/to/apk/file.apk"; 
 PackageManager packageManager = context.getPackageManager();
 PackageInfo packageInfo = packageManager.getPackageArchiveInfo(apkPath, 0);

 // you need to set this variables manually for some reason to get icon from APK file that has not been installed
 packageInfo.applicationInfo.sourceDir       = apkPath;
 packageInfo.applicationInfo.publicSourceDir = apkPath;

 Drawable icon = packageInfo.applicationInfo.loadIcon(packageManager);

【讨论】:

以上是关于如何以编程方式从 sdcard/storage .apk 文件中获取 appicon?的主要内容,如果未能解决你的问题,请参考以下文章

Android内外存储 易混淆点剖析(/mnt/sdcard/storage/sdcard0/storage/emulated/0等区别)

如何以编程方式从 UIViewController 转到 UITableViewController

如何以编程方式从动态 JObject 获取属性

如何从以编程方式创建的 UITableView 中分离?

如何以编程方式从课堂加载故事板?

如何以编程方式从 UINavigationController (storyboard) 切换到 UIViewController