Я хочу загрузить файлы с http-адреса, а затем сохранить их на SDCard или во внутреннем хранилище (если SDCARD не существует), но я запутался в выводе .getExternalStorage, а также в том, как получить доступ к специальному внутреннему каталогу.Я написал этот код для проверки наличия sdCard и затем setDestination для загружаемых файлов:
public void checkForDownload() {
Boolean isSdCard = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
Boolean isSdSupportedDevice = Environment.isExternalStorageRemovable();
if (isSdCard && isSdSupportedDevice) {
File sdDirectory = new File(Environment.getExternalStorageDirectory() + "pdfFiles", fileName);
if (!sdDirectory.exists()) {
downloadpdfBook(myActivity.this, "/pdfFiles", true);
} else
Toast.makeText(myActivity.this, "This file is downloaded", Toast.LENGTH_SHORT).show();
} else {
File directory = new File(myActivity.this.getFilesDir() + "pdfFiles", fileName);
if (!directory.exists()) {
downloadpdfBook(myActivity.this, "/pdfFiles", false);
} else
Toast.makeText(myActivity.this, "This file is downloaded", Toast.LENGTH_SHORT).show();
}
}
public void downloadpdfFile(Context context, String directory, Boolean isSd) {
Uri uri = Uri.parse(bookUrl);
downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(uri);
if (isSd) {
request.setDestinationInExternalPublicDir(Environment.getExternalStorageDirectory() + directory, fileName);
} else
request.setDestinationInExternalFilesDir(context, directory, fileName);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
long ref = downloadManager.enqueue(request);
}
Пожалуйста, помогите мне, если это возможно.Спасибо.