【问题标题】:How to get the correct external SDCard location如何获取正确的外部 SDCard 位置
【发布时间】:2023-03-21 18:30:01
【问题描述】:

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

还有:

我一直在编写代码以获取正确的外部安装 SDCard 位置,但没有任何运气。

Environment.getExternalStorageDirectory().getAbsolutePath();

将返回本地存储。

我正在递归地扫描文件系统以查找特定类型的文件,但如果我不进行硬编码

String rootPath = File.separator+"storage";

然后我会递归地得到我需要的所有东西。

任何帮助将不胜感激。

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

【问题讨论】:

  • 你用的是什么设备?
  • xt907 摩托罗拉 Razr M

标签: java android storage


【解决方案1】:

是的,没错。 Environment.getExternalStorageDirectory().getAbsolutePath() 将根据供应商的决定返回一个挂载点。现在大多数 OEM 将其指向一个内部安装点,例如 sdcard0/emulated/0/

但根挂载点将始终源自/mnt。因此,如果您想查看与平常不同的安装内容,请从此处开始扫描。

【讨论】:

  • 您好罗伊斯顿,感谢您的回答。我的最后一个问题是:假设 /mnt 将始终是所有存储设备的根安装点是否安全?如果我将它硬编码为我的根,它会在其他设备上工作吗?再次感谢你。费尔南多。
  • 会的。它是 Linux 文件系统的挂载点,它将保证它可以从 4.2.2 及以下版本开始工作。对于下一个版本,如果 Android 决定改变某些东西,那么我们需要看看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多