android-如何在外部SD卡中而不是在设备存储中写入文件?
作者:互联网
我尝试了这个:
public String getFilename() {
File file = new File(Environment.getExternalStorageDirectory(), "Test2");
if (!file.exists()) {
file.mkdirs();
}
String uriSting = (file.getAbsolutePath() + "/" + "IMG_" + System.currentTimeMillis() + ".png");
return uriSting;
}
我尝试将第二行更改为:
File file = new File("sdcard/Test2");
但是仍然在设备存储中而不是在外部SD卡上创建目录.
解决方法:
您无权访问removable storage.
在Android 4.4上,您有两个主要选择:
>使用Context上的所有方法使用getExternalFilesDirs(),getExternalCacheDirs()或getExternalMediaDirs()(请注意复数).如果它们返回2个位置,则第二个和后续位置是可移动存储上的位置,您的应用无需任何许可即可读取和写入.
>使用ACTION_OPEN_DOCUMENT
and ACTION_CREATE_DOCUMENT
,允许用户选择在何处放置一些内容,用户可以在其中选择可移动存储(或Google云端硬盘,DropBox或external storage或其他任何内容).您最终得到的是Uri,而不是文件系统路径. use ContentResolver
to work with that Uri
to get streams for reading and writing.
标签:android-file,file-handling,android 来源: https://codeday.me/bug/20191118/2028189.html