您好我使用本教程中的以下代码列出了我正在处理的应用程序中的所有已安装的应用程序。
http://impressive-artworx.de/2011/list-all-installed-apps-in-style/
我将onClick更改为我自己的对话框,我现在需要做的是能够获取应用程序的位置。也就是说,如果它在/ system / app或/ data / app中,我希望能够将整个路径覆盖到按下的应用程序,但无法弄清楚如何执行此操作。我可以通过在onClick中执行app.getPackageName()来获取packagename但是我如何获得apks路径呢?感谢您的任何建议或帮助,非常感谢!
答案 0 :(得分:3)
经过一番谷歌搜索后,我得到了我想要的东西
PackageManager m = getPackageManager();
String s = getPackageName();
PackageInfo p = m.getPackageInfo(s, 0);
s = p.applicationInfo.sourceDir;
在这里找到了很好的工作
感谢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);
}
您可以使用此代码获取已安装应用程序的信息。