如何解决获取apk文件图标,版本,名称
|| 对于尚未安装的软件包,有什么方法可以获取应用程序名称,应用程序版本和应用程序图标? (用于sdcard上的一些apk文件)解决方法
我可以使用
getPackageArchiveInfo(archiveFilePath,flags)
和getApplicationIcon (ApplicationInfo info)
获取apk图标,版本,名称
,我花了比我允许的更多的时间来寻找解决方案..找到了! :) :)
徘徊于此参考资料之后:
http://code.google.com/p/android/issues/detail?id=9151
我发现了从尚未安装的.apk文件中获取图标和名称(即标签)的技巧。
我希望现在帮助他人还为时不晚:
String APKFilePath = \"mnt/sdcard/myapkfile.apk\"; //For example...
PackageManager pm = getPackageManager();
PackageInfo pi = pm.getPackageArchiveInfo(APKFilePath,0);
// the secret are these two lines....
pi.applicationInfo.sourceDir = APKFilePath;
pi.applicationInfo.publicSourceDir = APKFilePath;
//
Drawable APKicon = pi.applicationInfo.loadIcon(pm);
String AppName = (String)pi.applicationInfo.loadLabel(pm);
经过轻度测试后,它似乎起作用了。
,我试过了:
PackageInfo info = getPackageManager().getPackageArchiveInfo(fullPath,0);
ApplicationInfo appinfo = info.applicationInfo;
label = getPackageManager().getApplicationLabel(appinfo).toString();
img = getPackageManager().getApplicationIcon(info.packageName);
但是,如果未安装apk,则此代码将无效。
,// Install a known apk file from the SD-Card
// or launch it if installed.
// -hsigmond
protected void runAppFromApkFileOnSdCard() {
final PackageManager pm = getActivity().getPackageManager();
String apkFileName = \"application_name.apk\";
String fullPath = \"/sdcard/\"+apkFileName;
PackageInfo packageInfo = pm.getPackageArchiveInfo(fullPath,0);
Intent intent = pm.getLaunchIntentForPackage(packageInfo.packageName);
if( intent == null ){
File file = new File(fullPath);
intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.fromFile(file),\"application/vnd.android.package-archive\");
}
startActivity(intent);
}
采用:
packageInfo.applicationInfo.[\'name\',\'icon\',\'logo\'] etc.
示例图标:
Drawable icon = packageInfo.applicationInfo.loadIcon(getActivity().getPackageManager());
,您可能已经发现,PackageManager仅在安装了应用程序后才对您有用。
要解决在不安装应用程序的情况下使用APK提取程序获取信息的问题,请参阅:http://code.google.com/p/apk-extractor/downloads/detail?name=APK-Extractor-src-1.0.zip&can = 2&q =
此项目是为了尝试开发可公开使用的解析器
可以解析Android的二进制XML。 AAPT(Android资产打包
工具)使用Google自己的专有二进制文件对XML资源进行编码/解码
XML格式。人们普遍认为这是通用的WBXML格式
任何具有WBXML功能的解析器都可以解析它。但是这是错误的。
如果您打算探索Android的Binary XML,我的代码库可以
帮助您启动并在其之上构建服务。
版本1.0-能够解析Android清单,XML布局等。
并将DEX / ODEX转换为CLASS,任何人都可以打开
反编译器。
他的博客在这里:
http://prasanta-paul.blogspot.com/2012/03/android-apk-extractor.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。