注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

东东的博客

江南烟雨,同大家一起分享

 
 
 

日志

 
 

获取已安装或者未安装的apk的信息  

2010-06-13 09:56:35|  分类: android相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

获取已安装程序的名字、包名、版本和图标


Java代码
  1. class PInfo {    
  2.     private String appname = "";    
  3.     private String pname = "";    
  4.     private String versionName = "";    
  5.     private int versionCode = 0;    
  6.     private Drawable icon;    
  7.     private void prettyPrint() {    
  8.         log(appname + "\t" + pname + "\t" + versionName + "\t" + versionCode + "\t");    
  9.     }    
  10. }    
  11.     
  12. private void listPackages() {    
  13.     ArrayList<PInfo> apps = getInstalledApps(false); /* false = no system packages */    
  14.     final int max = apps.size();    
  15.     for (int i=0; i<max; i++) {    
  16.         apps.get(i).prettyPrint();    
  17.     }    
  18. }    
  19.     
  20. private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) {    
  21.     ArrayList<PInfo> res = new ArrayList<PInfo>();            
  22.     List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);    
  23.     for(int i=0;i<packs.size();i++) {    
  24.         PackageInfo p = packs.get(i);    
  25.         if ((!getSysPackages) && (p.versionName == null)) {    
  26.             continue ;    
  27.         }    
  28.         PInfo newInfo = new PInfo();    
  29.         newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();    
  30.         newInfo.pname = p.packageName;    
  31.         newInfo.versionName = p.versionName;    
  32.         newInfo.versionCode = p.versionCode;    
  33.         newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());    
  34.         res.add(newInfo);    
  35.     }    
  36.     return res;     
  37. }   

获取未安装的APK信息


在前面的文章发过一篇《获取已安装程序的名字、包名、版本和图标》,当时有朋友问我怎么获取未安装的APK信息(如:软件名称、包名、图标等等)。当时还不知道能读取未安装的APK信息,也没遇到这样的需求,所以也没去看怎么做。现在终于知道了,很简单。看代码会比较明了。

 

 

Java代码
  1. /** 获取未安装的APK信息 
  2.      * @param context 
  3.      * @param archiveFilePath APK文件的路径。如:/sdcard/download/XX.apk 
  4.      */  
  5.     public void getUninatllApkInfo(Context context, String archiveFilePath){  
  6.         PackageManager pm = context.getPackageManager();  
  7.         PackageInfo info = pm.getPackageArchiveInfo(archiveFilePath, PackageManager.GET_ACTIVITIES);  
  8.         if(info != null){  
  9.             ApplicationInfo appInfo = info.applicationInfo;  
  10.             String appName = pm.getApplicationLabel(appInfo).toString();  
  11.             String packageName = appInfo.packageName;  
  12.             Drawable icon = pm.getApplicationIcon(appInfo);  
  13.         }  
  14.     } 

转自:http://mingkg21.javaeye.com/blog/465454
            http://mingkg21.javaeye.com/blog/555819

  评论这张
 
阅读(1398)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017