Android获取包名的安装位置



嗨,我使用本教程中的以下代码列出了我正在开发的应用程序中所有安装的应用程序。

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

我将onClick更改为我自己的对话框,现在我需要做的是能够获取应用程序的位置。也就是说,如果它在/system/app或/data/app中,我希望能够吐司到按下的应用程序的整个路径,但不知道如何做到这一点。我可以通过在onClick中执行app.getPackageName()来获取包名,但我如何使用它来获取apks路径?感谢您的任何建议或帮助,非常感谢!

经过更多的谷歌搜索,我得到了我想要的

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

工作得很好,在这里找到了

获取应用程序目录

感谢它帮助我在谷歌上搜索

看看这个。特别是带有publicSourceDir的代码段。

      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);
      }

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

最新更新