这是我的函数代码。太乱了,我一直在尝试很多事情,但是没有任何效果。我想从Firebase存储下载pdf文件,并将其保存在设备上的“下载”文件夹中。使用临时文件时,我会获得成功的结果。但是,当尝试保存在设备存储上时,出现下载错误吐司。
因此可以访问和下载文件,但无法在本地存储上建立永久文件。我已将权限设置为“写入和读取外部存储器”。感谢您的帮助!
public void getfile() {
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
storageRef = storage.getReference();
pathReference = storage.getReferenceFromUrl(link.getText().toString());
File storagePath = new File (Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), name + ".pdf");
if(!path.exists()) {
path.mkdirs();
}
final File myfile = new File(path, "somename");
// File file;
// file = new File(path);
// File localFile = File.createTempFile(name.getText().toString(),"pdf");
pathReference.getFile(myfile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(note_list.this, "Downloaded", Toast.LENGTH_SHORT).show();
//created
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(note_list.this, "Download error", Toast.LENGTH_SHORT).show();
//error
}
}); // Here I try to call this method
}