W/DownloadManager:中止下载请求 17:无法创建目标文件 /storage/emulated/0/Ringtone/Fav_Ringtone.mp3

Posted

技术标签:

【中文标题】W/DownloadManager:中止下载请求 17:无法创建目标文件 /storage/emulated/0/Ringtone/Fav_Ringtone.mp3【英文标题】:W/DownloadManager: Aborting request for download 17: Failed to create target file /storage/emulated/0/Ringtone/Fav_Ringtone.mp3 【发布时间】:2021-08-28 03:38:27 【问题描述】:

我正在尝试下载我的 mp3 文件并希望将其保存到特定位置的内部存储中。

但是每次我的下载都失败了。

Logcat 错误信息

01-01 08:36:09.295 154-748/android.process.media W/DownloadManager: Aborting request for download 
17: Failed to create target file /storage/emulated/0/Ringtone/Fav_Ringtone.mp3

下载方法

   public void Save_mp3_internal_Storage(Uri uri,Context context)

        String destination = Environment.getExternalStorageDirectory()+"/Ringtone/";

        Delete_mp3_internal_Storage(new File(destination,"Fav_Ringtone.mp3"));

        DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);

        DownloadManager.Request request = new DownloadManager.Request(uri)
                .setDestinationUri(Uri.fromFile(new File(destination,"Fav_Ringtone.mp3")))
                .setTitle("Ringtone Downloading")
                .setNotificationVisibility(1);
                 manager.enqueue(request);
    

    public void Delete_mp3_internal_Storage(File file)
        if (file.exists())
            file.delete();
        
    

我认为是模拟器故障。因为大多数时候我的模拟器无法下载文件(SmartGaga)

【问题讨论】:

铃声...... 你在尝试什么安卓版本?您是否授予存储读/写权限? @SyedAfeef 我在清单中添加了读写权限。 API 级别 30 最好将文件下载到 Environment.DIRECTORY_DOWNLOADS 以获取最新的 android 您是否授予了该应用程序的权限?仅将其写入清单不会授予权限。转到应用权限并将其设置为允许。 @Syed Afeef DownloadManager 不需要这些权限。 【参考方案1】:

把你的代码改成这个

    public void Save_mp3_internal_Storage(Uri uri, Context context)

        Delete_mp3_internal_Storage(context);

        DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);

        DownloadManager.Request request = new DownloadManager.Request(uri);
                request.setDestinationInExternalFilesDir(context,Environment.DIRECTORY_ALARMS,"Fav_Ringtone.mp3")
                .setTitle("Ringtone Downloading")
                .setNotificationVisibility(1);
                 manager.enqueue(request);
    

    public void Delete_mp3_internal_Storage(Context context)
       File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_ALARMS),"Fav_Ringtone.mp3");
       if (file.exists())file.delete();
    

【讨论】:

以上是关于W/DownloadManager:中止下载请求 17:无法创建目标文件 /storage/emulated/0/Ringtone/Fav_Ringtone.mp3的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 中止请求

中止请求 wp7

中止 DoJo XHR 请求

在 React Redux 应用程序中使用 AbortController 中止的请求将永远中止

中止/取消/放弃angular js中的http请求并重试

如何取消/中止 jQuery AJAX 请求?