Android使用packagename获取安装位置

时间:2011-06-06 19:03:38

标签: android list install package

您好我使用本教程中的以下代码列出了我正在处理的应用程序中的所有已安装的应用程序。

http://impressive-artworx.de/2011/list-all-installed-apps-in-style/

我将onClick更改为我自己的对话框,我现在需要做的是能够获取应用程序的位置。也就是说,如果它在/ system / app或/ data / app中,我希望能够将整个路径覆盖到按下的应用程序,但无法弄清楚如何执行此操作。我可以通过在onClick中执行app.getPackageName()来获取packagename但是我如何获得apks路径呢?感谢您的任何建议或帮助,非常感谢!

3 个答案:

答案 0 :(得分:3)

经过一番谷歌搜索后,我得到了我想要的东西

PackageManager m = getPackageManager();
String s = getPackageName();
PackageInfo p = m.getPackageInfo(s, 0);
s = p.applicationInfo.sourceDir;

在这里找到了很好的工作

Get Application Directory

感谢Google帮助我搜索了什么

答案 1 :(得分:1)

看看this。特别是publicSourceDir的片段。

答案 2 :(得分:1)

      List<PackageInfo> packs = packageManager.getInstalledPackages(0); //PackageManager.GET_META_DATA 
      for(int i=0; i < packs.size(); i++) {
         PackageInfo p = packs.get(i);
         ApplicationInfo a = p.applicationInfo; 
         // skip system apps if they shall not be included
         if ((!includeSysApps) && ((a.flags & ApplicationInfo.FLAG_SYSTEM) == 1)) {
            continue;
         }
         App app = new App();
         app.setTitle(p.applicationInfo.loadLabel(packageManager).toString());
         app.setPackageName(p.packageName);
         app.setVersionName(p.versionName);
         app.setVersionCode(p.versionCode);
         CharSequence description = p.applicationInfo.loadDescription(packageManager);
         app.setDescription(description != null ? description.toString() : "");
         apps.add(app);
      }

您可以使用此代码获取已安装应用程序的信息。