Hola, no sé porque está pasando esto, estoy descargando unos archivos que tengo en Google Drive, y cuando descargo un archivo con un tamaño de 25 Mb no se descargar, se crear el archivo, pero con unos 2,21 Kb.
El código supongo que está bien, porque si descargo archivos de menor tamaño como de 20 Mb, no hay problemas, se descarga bien.
Este es uno de los códigos que estoy probando, aunque este código hace algo raro, el archivo se descargar dos veces, no sé porque, y luego acto seguido uno archivo se borra automáticamente:
// 20 Mb
url = "https://drive.google.com/uc?export=download&id=1yg420M0KLshwALIlGpXToGgKE9nHFswc";
// 25 MB
// url = "https://drive.google.com/uc?export=download&id=1adnCSjflxYFpVaoEAZfQ3A1ZqGU_xFll";
String FILENAME = "archivo.rar";
DownloadManager manager1 = (DownloadManager) getActivity().getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri = Uri.parse(url);
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setTitle("Archivo");
request.setDescription("Descargando....");
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationUri(Uri.parse("file://" + Environment.getExternalStoragePublicDirectory(DIRECTORY_DOCUMENTS) + "/" + FILENAME));
manager1.enqueue(request);
Objects.requireNonNull(manager1).enqueue(request);
if (DownloadManager.STATUS_SUCCESSFUL == 8) {
Toast.makeText(getActivity(), "Archivo Descargado", Toast.LENGTH_LONG).show();
}
Este es otro código que también funciona, pero cuando se pone el link del archivos de 25 Mb ya no se descarga.
new DownloadFile().execute(url, "archivo.rar");
private class DownloadFile extends AsyncTask<String, Void, Void> {
@Override
protected Void doInBackground(String... strings) {
String fileUrl = strings[0];
String fileName = strings[1];
String extStorageDirectory = Environment.getExternalStoragePublicDirectory(DIRECTORY_DOCUMENTS).toString();
File folder = new File(extStorageDirectory, "testPDF");
folder.mkdir();
File pdfFile = new File(folder, fileName);
try{
pdfFile.createNewFile();
}catch (IOException e){
e.printStackTrace();
}
FileDownloader.downloadFile(fileUrl, pdfFile);
return null;
}
}
Tambien he probado con la librería PRDownloader https://github.com/MindorksOpenSource/PRDownloader
y paso lo mismo, los archivos se descargan bien, pero al poner el enlace de un archivo de 20 Mb, ya solo se descargan unos 2,21 Kb.
Hay alguna limitación por algún lado, Por qué no me deja descargar archivos más grandes
Gracias.