Intereting Posts
Повторное использование фрагментов в фрагментаторе Как обрабатывать миграцию области, если пользователи пропускают обновления Android Key Store API 23, используйте setUserAuthenticationRequired без сканера отпечатков пальцев Android MediaRecorder setCaptureRate () и скорость воспроизведения видео Как избежать черного экрана при запуске приложения Android / Java: HttpURLConnection не возвращает заголовки перенаправленного файла (например, на S3) Как воспроизвести звуковое уведомление с помощью Chrome для Android с помощью Javascript? Как показать изображение всплеска во время загрузки Эффективно получать битмап из TextureView Публикация результатов Линта для сонара с использованием Gradle Android ListView onTouchEvent не всегда дает ACTION_DOWN Как получить конкретный список данных из firebase Android – ObjectAnimator устанавливает значение поворота Как постоянно меняется изображение ImagView? Макет, дублирующий себя при вращении экрана

Как сохранить загруженный файл на SD-карте из диспетчера программ программно на Android

В моем приложении у меня есть функция загрузки (изображения), которая используется для загрузки файла из URL-адресов. Загрузка должна быть показана в панели уведомлений, чтобы я использовал класс Download Manager для загрузки файла. Это нормально работает, но загруженное изображение не хранится на SD-карте.

Я передал URL- адрес менеджеру загрузки.

Мое требование – мне нужно сохранить изображение загрузки на SDCard с индикацией панели уведомлений. Что нужно изменить на код, чтобы получить изображение с сохранением на sdcard по вышеуказанной ссылке

У меня есть некоторые сомнения в отношении кода в приведенной выше ссылке. Могу ли я использовать тот же код для загрузки аудио- или видеофайлов?

пожалуйста помогите.

Отредактированный вопрос:

я пытался

filepath = Environment.getExternalStorageDirectory().getPath()+"/download/cm.png"; Uri destinationUri = Uri.parse(filepath); request.setDestinationUri(destinationUri); 

Перед установкой предпочтения нажмите кнопку. Но я не смог получить файл на SD-карте.

Это то, что я использовал.

  Uri downloadUri = Uri.parse(DOWNLOAD_FILE); DownloadManager.Request request = new DownloadManager.Request(downloadUri); request.setDescription("Downloading a file"); long id = downloadManager.enqueue(request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI |DownloadManager.Request.NETWORK_MOBILE) .setAllowedOverRoaming(false) .setTitle("File Downloading...") .setDescription("Image File Download") .setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "cm.png")); 

В коде, на который вы ссылаетесь, файл открывается в конце. На этом этапе вы можете рассмотреть возможность копирования его на SDCard.

В противном случае (лучше) используйте http://developer.android.com/reference/android/app/DownloadManager.Request.html setDestinationUri (android.net.Uri), чтобы указать, где вы хотите загрузить файл.

  downloadmanager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); Toast.makeText(context, "Downloading...", Toast.LENGTH_LONG).show(); Uri uri = Uri.parse("---- url here ------"); request = new DownloadManager.Request(uri); request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE); request.setAllowedOverRoaming(false); request.setTitle("---- title here ------"); String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(MimeTypeMap.getFileExtensionFromUrl("---- url here ------"); request.setMimeType(mimeType); request.setDescription("---- descripation here ------"); if("---- titlehere ------" != null){ request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "---- title here ------"); } request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); Long reference = downloadmanager.enqueue(request);