当前位置: 代码迷 >> Android >> Failure retrieving icon,怎么程序获取未安装程序的图标?
  详细解决方案

Failure retrieving icon,怎么程序获取未安装程序的图标?

热度:195   发布时间:2016-05-01 13:30:09.0
Failure retrieving icon,如何程序获取未安装程序的图标??
详细查了网上相关的讨论,也仔细看了android的帮助文档就是找不着答案 。使用getApplicationIcon(appInfo)函数总是失败,最后总是返回android默认程序图标,Failure retrieving icon 0x702xxxxxx in package com.example.XXXXXXX, 请问各位大侠, 有没有人解决了这问题??
  getApplicationIcon(pkgName)函数却只能返回已安装程序的图标。

/** 获取未安装的APK信息  
  * @param context  
  * @param archiveFilePath APK文件的路径。如:/sdcard/download/XX.apk  
  */  
  public void getUninatllApkInfo(Context context, String archiveFilePath){  
  PackageManager pm = context.getPackageManager();  
  PackageInfo info = pm.getPackageArchiveInfo(archiveFilePath, PackageManager.GET_ACTIVITIES);  
  if(info != null){  
  ApplicationInfo appInfo = info.applicationInfo;  
  String appName = pm.getApplicationLabel(appInfo).toString();  
  String packageName = appInfo.packageName;  
  Drawable icon = pm.getApplicationIcon(appInfo);  
  }  
  }

------解决方案--------------------
2.2中有两种方法,第二种万能的吧,不过费点体力

1. 有个未公开的api在asset类中,需要自己编译下sdk。
2. 自己解析androidmanifest.xml提取出icon的位置,直接解压apk中的/res/图片的位置。
------解决方案--------------------
http://blog.csdn.net/sodino/archive/2011/03/01/6215224.aspx

请参考
  相关解决方案