android 获取APK的包名 版本号 名称,图标等信息

来源:互联网 发布:nginx 修改root路径 编辑:程序博客网 时间:2024/04/29 02:01

转载,原文来自

http://blog.csdn.net/csheng1204/article/details/8161290


懒得说了,直接附代码:

[java] view plaincopyprint?
  1. /** 
  2. * 获取apk包的信息:版本号,名称,图标等 
  3. * @param absPath apk包的绝对路径 
  4. * @param context  
  5. */  
  6.           
  7.     PackageManager pm = getPackageManager();  
  8.     PackageInfo pkgInfo = pm.getPackageArchiveInfo(absPath,PackageManager.GET_ACTIVITIES);  
  9.     if (pkgInfo != null) {  
  10.         ApplicationInfo appInfo = pkgInfo.applicationInfo;  
  11.         /* 必须加这两句,不然下面icon获取是default icon而不是应用包的icon */  
  12.         appInfo.sourceDir = absPath;  
  13.         appInfo.publicSourceDir = absPath;  
  14.         String appName = pm.getApplicationLabel(appInfo).toString();// 得到应用名  
  15.         String packageName = appInfo.packageName; // 得到包名  
  16.         String version = pkgInfo.versionName; // 得到版本信息  
  17.         /* icon1和icon2其实是一样的 */  
  18.         Drawable icon1 = pm.getApplicationIcon(appInfo);// 得到图标信息  
  19.         Drawable icon2 = appInfo.loadIcon(pm);  
  20.         String pkgInfoStr = String.format("PackageName:%s, Vesion: %s, AppName: %s", packageName, version, appName);  
  21.         Log.i(TAG, String.format("PkgInfo: %s", pkgInfoStr));  
  22. }


下面是两句比较重要的代码,为什么要加这个,不加就获取不到包的icon

[java] view plaincopyprint?
  1. /* 必须加这两句,不然下面icon获取是default icon而不是应用包的icon */  
  2. appInfo.sourceDir = absPath;  
  3. appInfo.publicSourceDir = absPath;  
0 0
原创粉丝点击