我正在尝试获取当前在android上运行apk的路径。 我正在使用System.getProperty(“user.dir”)。 但它给出了一个“/”,这是Android系统的根目录。 我错过了什么吗?
答案 0 :(得分:4)
正如documentation所说,user.dir
属性是用户工作目录,不一定与放置apk的目录相同。
无论如何,List<ApplicationInfo> PackageManager.getInstalledApplications()
会为您提供已安装应用程序的列表,ApplicationInfo.sourceDir
是.apk
文件的路径。
以下是一些示例代码:
PackageManager pm = getPackageManager();
for (ApplicationInfo app : pm.getInstalledApplications(0)) {
System.out.println("SourceDir: " + app.sourceDir);
}
上面将为您提供所有已安装apks的源路径。
该示例来自here。
答案 1 :(得分:1)
安装在内存后,您的apk位于/data/app/<your_package_name>
。此路径在Android中保持一致,您无需使用System
。
答案 2 :(得分:1)
检查Context课程。你想要的功能是:
等等。
答案 3 :(得分:0)
ApplicationInfo课程是你的答案:
PackageManager pm = getPackageManager();
for (ApplicationInfo app : pm.getInstalledApplications(0)) {
if (app.packageName.equals(appPackage) { Log.i( app.sourceDir); }
}
希望对你进行分类。