如何获取Android存储位置

如何获取Android存储位置,android,android-studio,Android,Android Studio,我正在努力解决一个非常简单的问题,那就是获取存储目录路径的可怕问题,不管是内部的还是外部的——SD卡还是OTG设备 ​ 我期待着一个简单的调用,比如getExternalStorageDirectory()或类似的调用,但令我惊讶的是,我发现我必须进行大量的破解和变通,以确保我的函数能与所有OEM和不同版本的Android一起工作 ​ 我在这里找到了一个使用以下三个环境变量的解决方案 val rawExternalStorage=System.getenv(“外部存储”) val rawSeco

我正在努力解决一个非常简单的问题,那就是获取存储目录路径的可怕问题,不管是内部的还是外部的——SD卡还是OTG设备

我期待着一个简单的调用,比如getExternalStorageDirectory()或类似的调用,但令我惊讶的是,我发现我必须进行大量的破解和变通,以确保我的函数能与所有OEM和不同版本的Android一起工作

我在这里找到了一个使用以下三个环境变量的解决方案

val rawExternalStorage=System.getenv(“外部存储”)

val rawSecondaryStoragesStr=System.getenv(“辅助存储”)

val rawmulatedstoragetarget=System.getenv(“模拟存储目标”)

我有点明白第一个和第二个变量是什么——但是对于Android,永远不要确定任何事情D--


但是我完全不知道第三个变量是什么,或者它的作用是什么,有人能给我解释一下它是什么,我应该如何使用它吗?

在你需要的类的上调用这个方法

private String DB_PATH = context.getFilesDir().getAbsolutePath();

获取绝对路径

getFilesDIr()、getExternalFilesDIr()和getExternalFilesDIr()。忘记你试过的那些。getExternalStorageDirectory()在Android.Q.
之前一直有效。一个简单的调用,比如getExternalStorageDirectory()
可以很好地工作。您试过了吗?它只适用于设备的内部存储,即没有sd卡等。
即没有sd卡等
尝试getExternalFilesDirs()。第二项。由于您在安卓4.4+上的访问权限有限,并且在安卓10+上几乎没有访问权限或可移动存储,因此我建议您重新考虑您试图实现的所有目标。