我正在尝试获取我的当前运行的安卓apk的路径。 我使用System.getProperty("user.dir")。 但是它输出"/",这是安卓系统的根目录。 我是否遗漏了什么?
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);
}
当您将应用程序安装到内部存储器后,您的apk文件位于/data/app/<your_package_name>
。这个路径在Android系统中是一致的,您不需要使用System
来获取它。
请查看Context类。你需要的函数有:
等等。
ApplicationInfo类是你的答案:
PackageManager pm = getPackageManager();
for (ApplicationInfo app : pm.getInstalledApplications(0)) {
if (app.packageName.equals(appPackage) { Log.i( app.sourceDir); }
}
希望这能解决你的问题。