我正在建立一个下载管理器来下载文件并将其保存到我的SD卡中。对于API> = 23,我必须使用FileOutputStream,来帮助我恢复文件以防下载失败。
但是,在API 21& API 22(Lollipop),不能用Sd卡写,但可以在DocumentFile的帮助下完成。
我可以在Lollipop中创建文件和文件夹但是如果不能继续下载该文件已部分下载。我的代码如下:
if (file.exists()) {
downloaded = (int) file.length();
connection.setRequestProperty("Range", "bytes=" + (file.length()) + "-");
String s = file.getPath();
String s1 = getRealPathFromURI(documentFile.getUri());
s = s.replace(s1, "");
Uri uri2 = Uri.parse(documentFile.getUri().toString() + Uri.encode(s));
output = getContentResolver().openOutputStream(uri2);
} else {
connection.setRequestProperty("Range", "bytes=" + downloaded + "-");
DocumentFile tempDocumentFile = documentFile.createFile("video/mp4", "temp/" + downloadsPaths.get(i));
output = getContentResolver().openOutputStream(tempDocumentFile.getUri());
}
它正在重写当前文件。我正在寻找DocumentFile中的处理附加模式。我已提供所有必需的权限。请提前帮助我,谢谢。