Это мой код для функции.Это грязно, я пробовал много вещей, но ничего не работает.Я хочу загрузить файл PDF из хранилища Firebase и сохранить его в папке «Загрузки» на устройстве.При использовании временного файла я получаю успешный результат.Но при попытке сэкономить на устройстве хранения я получаю тост ошибки загрузки.
Таким образом, файл может быть доступен и загружен, но его код не может создать постоянный файл в локальном хранилище.Я установил свои права на запись и чтение внешней памяти.Спасибо за любую помощь!
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
}