Java 如何获得正确的外部SD卡位置

Java 如何获得正确的外部SD卡位置,java,android,storage,Java,Android,Storage,为什么Environment.getExternalStorageDirectory()返回内部存储(storage/sdcard0/)?在我的例子中,sdcard0是本地的,sdcard1是外部的。。。等等 此外: 我一直在编码,以获得正确的外部安装SD卡的位置没有任何运气 Environment.getExternalStorageDirectory().getAbsolutePath(); 将返回本地存储 我正在递归地扫描文件系统以查找特定类型的文件,但是如果我没有硬编码的话 Strin

为什么
Environment.getExternalStorageDirectory()
返回内部存储(storage/sdcard0/)?在我的例子中,sdcard0是本地的,sdcard1是外部的。。。等等

此外:

我一直在编码,以获得正确的外部安装SD卡的位置没有任何运气

Environment.getExternalStorageDirectory().getAbsolutePath();
将返回本地存储

我正在递归地扫描文件系统以查找特定类型的文件,但是如果我没有硬编码的话

String rootPath = File.separator+"storage";
然后我会递归地得到我所需要的一切

任何帮助都将不胜感激


目标是获取所有存储位置的所有根(我认为没有环境变量)。

是的,这是正确的
Environment.getExternalStorageDirectory().getAbsolutePath()
将根据供应商的决定返回装载点。如今,大多数OEM将其指向内部装载点,如
sdcard0
/simulated/0/


但是根装入点将始终源自
/mnt
。因此,如果您想查看除常规安装之外的其他安装内容,请从这里开始扫描。

是的,这是正确的
Environment.getExternalStorageDirectory().getAbsolutePath()
将根据供应商的决定返回装载点。如今,大多数OEM将其指向内部装载点,如
sdcard0
/simulated/0/


但是根装入点将始终源自
/mnt
。因此,如果您想查看除正常安装以外的其他安装内容,请从这里开始扫描。

您使用的是什么设备?xt907摩托罗拉Razr M您使用的是什么设备?xt907摩托罗拉Razr MHello Royston,谢谢您的回答。我的最后一个问题是:假设/mnt始终是所有存储设备的根安装点是否安全?如果我将它硬编码为我的根目录,它在其他设备中工作吗?再次感谢你。费尔南多,会的。这是Linux文件系统装载点,它将保证它在4.2.2及以下版本中工作。对于下一个版本,如果Android决定改变一些东西,那么我们需要看看。你好,罗伊斯顿,谢谢你的回答。我的最后一个问题是:假设/mnt始终是所有存储设备的根安装点是否安全?如果我将它硬编码为我的根目录,它在其他设备中工作吗?再次感谢你。费尔南多,会的。这是Linux文件系统装载点,它将保证它在4.2.2及以下版本中工作。对于下一个版本,如果Android决定改变一些东西,那么我们需要看看。