如何在android上以编程方式从下载管理器中保存sd卡上的下载文件

M.A*_*ali 4 android android-sdcard android-internet

在我的应用程序中,我有下载(图像)功能,用于从网址下载文件.下载发生应该显示在通知栏中,以便我使用Download Manager类下载文件.这工作正常,但下载的图像不存储在SD卡中的任何位置.

我已经推荐了下载管理器的URL.

我的要求是我需要将下载图像保存到带有通知栏指示的SD卡. 如何在代码上修改以在上面的链接上获取sdcard上的保存图像

我有点怀疑上述链接中的代码是否可以使用相同的代码下载音频或视频文件?

请帮我.

编辑问题:

我试过了

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

在按钮上的首选项管理器之前单击.但我无法在SD卡上获取该文件.

M.A*_*ali 12

这就是我用的.

        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"));
Run Code Online (Sandbox Code Playgroud)

  • 我不认为这会起作用吗?它会将您的文件保存到手机内存的默认下载文件夹中,而不是保存在您的存储卡上?还有一件事长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")); ==> enqueue()函数返回long值???? (2认同)