【发布时间】:2018-10-14 08:52:52
【问题描述】:
new File(System.getenv("SECONDARY_STORAGE") + "/foo/", "bar.txt").createNewFile()
那行代码应该已经在 sd 卡的目录 foo 中创建了一个文件(sd 卡已挂载)。但是System.getenv("SECONDARY_STORAGE") 返回"/storage/sdcard1"。它应该可以正常工作,只是首先应该创建文件的代码会抛出
android.system.ErrnoException: open failed: EACCES (Permission denied)
注意:IOException 的子类
使用System.getenv("SECONDARY_STORAGE") 读取工作正常,但是,所有写入方式都会失败,并出现相同的异常。
使用"/sdcard/" 可以轻松避免这种情况,但这种方法不可靠,因为并非所有制造商都会在 root 中放置 sdcard 快捷方式。
有没有办法可靠地解决这个问题?
【问题讨论】:
-
您是否在清单中添加了写入外部存储的权限?
-
仅供参考,我想要一个功能,可以将下载(应用程序功能)放在内部或 sd 卡中作为设置,我掉到了这里。
-
是的@IntsabHaider,是的,我有。
标签: java android android-sdcard ioexception android-storage