我想使用File
将文件存储在SD卡上。我已经实现了将文件存储在外部存储设备(在我的文件浏览器应用程序中命名为内部存储设备。这不是SD卡)。
我了解了很多有关将数据存储在SD卡上的信息,并且经常看到:
new File(Environment.getExternalStorageDirectory() + "/MyFile")
但是这会将文件存储在外部存储设备上,而不是SD卡上。那么如何将文件存储在SD卡上而不是外部存储中?
答案 0 :(得分:2)
理想情况下,您使用Storage Access Framework(例如ACTION_CREATE_DOCUMENT
),并让 user 选择 user 放置此内容的位置。用户可能希望将内容放置在其他地方。例如,用户可能没有可移动存储。
暂时欢迎您在getExternalFilesDirs()
上使用Context
和类似方法。如果这些返回2个以上的元素,则第二个及后续元素是可移动存储上的位置。在Android 4.4+上,您的应用无需任何特殊权限即可写入这些位置。 Android Q在这里改变了很多规则,这是改用Storage Access Framework的另一个原因。
答案 1 :(得分:0)
使用此方法可能对您有帮助:
An answer to Stack Overflow question How do I get the external storage's path?
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)