【发布时间】:2018-01-21 16:17:17
【问题描述】:
我正在尝试获取 Android 设备的内部和外部存储路径。
这就是我在大多数设备中获取内部存储路径的方式
Environment.getExternalStorageDirectory().getPath()
上述方法适用于大多数设备,但此方法在某些设备上会出现问题,即它正在返回 SD 卡路径。
谁能告诉我如何在Environment.getExternalStorageDirectory().getPath() 返回外部存储路径(SD 卡路径)的设备中准确获取内部存储路径。
我也知道Environment.getDataDirectory().getPath(),但此方法返回值类似于/data,而同一设备的Environment.getExternalStorageDirectory().getPath() 返回/storage/sdcard0,当SD 卡不存在但SD 卡存在时,它指向内部存储现在它给出了指向 SD 卡而不是内部存储的路径。
谁能帮我理解以上两者之间的区别,也可以帮我获取Android设备的内部存储路径吗?另外,请帮助我提供一个适用于所有设备的解决方案。
编辑:任何认为此帖子不合适的人请发表评论并告诉我原因,以便我将来记住这一点。
【问题讨论】:
-
不清楚您所说的“内部存储路径”是什么意思。它似乎与 Android SDK 所指的 internal storage、external storage 或 removable storage 不一致。
-
嗨有趣的问题,可能的答案stackoverflow.com/a/19982338/2298357
-
@PankajKantPatel 感谢您的回答。此答案是否会返回内部存储路径以及外部存储路径(SD 卡)。而且这对所有设备都一样吗?
-
@CommonsWare 谢谢。但我指的是通常保存文件的存储,例如 WhatsApp 文件夹、DCIM、下载等。
-
@Rahulrr2602 我不得不说这是一个重要的问题。即使在从 Android 知道这一点之后,我在 Flutter 中开发时也多次遇到同样的问题。我认为命名法会产生冲突。因为随着技术的发展,内部/外部/可移动/分区的相同概念从未遵循原始函数名称!
标签: java android storage android-sdcard android-external-storage