如何将文件存储在 SD 卡上(外部)

How to store a file on an SD card (external)

我想使用 File 在 SD 卡上存储文件。我已经实现了在外部存储中存储文件(在我的文件资源管理器应用程序中命名为内部存储。这不是 SD 卡)。

我读了很多关于在 SD 卡上存储数据的文章,经常看到:

new File(Environment.getExternalStorageDirectory() + "/MyFile")

但这会将文件存储在外部存储设备上,而不是存储在 SD 卡上。那么如何将文件存储在 SD 卡上而不是外部存储设备上呢?

理想情况下,您使用存储访问框架(例如,ACTION_CREATE_DOCUMENT)并让用户选择用户的位置想把这个内容。用户可能希望将内容放在其他地方。例如,用户可能没有可移动存储。

暂时欢迎您在Context上使用getExternalFilesDirs()和类似的方法。如果这些 return 2+ 个元素,则第二个和后续元素是可移动存储上的位置。在 Android 4.4+ 上,您的应用可以在没有任何特定权限的情况下写入这些位置。 Android Q 在这里对规则进行了大量更改,这是改用存储访问框架的另一个原因。

使用这个可以帮助你:

An answer to Stack Overflow question How do I get the external storage's path?

Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)