下载管理器不工作

Posted

技术标签:

【中文标题】下载管理器不工作【英文标题】:Download Manager not working 【发布时间】:2016-09-02 02:46:53 【问题描述】:

我正在尝试开发显示视频的应用程序,您可以下载它 我正在使用下载管理器类,但它没有工作,也没有给我任何错误:(

这是我的下载管理器代码:

    public void downloadFileFromUrl(String url, String fileName) 

        String filePath=Environment.getExternalStorageDirectory() + File.separator + "BlueNet";

        File folder = new File(filePath);

        if (!folder.exists()) 
            folder.mkdirs();
        

        try 

        Uri downloadUri = Uri.parse(url);
        DownloadManager.Request request = new DownloadManager.Request(downloadUri);

        request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
        request.allowScanningByMediaScanner();

        request.setDestinationInExternalPublicDir("/BlueNet/",fileName);
        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
        request.setVisibleInDownloadsUi(true);
        DownloadManager downloadManager = (DownloadManager)getApplicationContext().getSystemService(DOWNLOAD_SERVICE);
        long id= downloadManager.enqueue(request);
            Toast.makeText(this, fileName, Toast.LENGTH_LONG).show();
            Toast.makeText(this, filePath, Toast.LENGTH_LONG).show();

        

        catch (Exception ex)
            Toast.makeText(this, ex.toString(), Toast.LENGTH_LONG).show();
        
    

这就是我的称呼

downloadFileFromUrl(path, fileName);

地点:

路径:“192.168.1.5:8080/BlueNet_NMC/blue_elephant.mp4”

文件名:“blue_elephant.mp4”

我已经将这个权限授予清单

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

请大家帮忙

【问题讨论】:

你试过用“/BlueNet”代替“/BlueNet/”吗?此外,AFAIK 无需检查该文件夹是否存在,DownloadManager 会为您完成。 好的,我删除检查陡峭 您是否尝试过从 Internet 下载图像或其他内容,而不是从本地网络下载文件? 不,但是当我将链接放入浏览器时,我可以下载它 试一试,告诉我它是否有效。 【参考方案1】:

正如我在 cmets 中所说,DownloadManager 仅处理以http://https:// 开头的请求,如您所见in the docs。

我不知道究竟是什么问题,因为我缺乏关于您的服务器的信息,但我认为这是一个常见问题,因此您应该避免在不提供该方案的情况下使用 IP 地址。

【讨论】:

不好意思反驳,不过好像确实支持HTTPS。看看this link,他们指出:Uri: the HTTP or HTTPS URI to download. 我不是故意的,我已经更新了我的答案以反映我想说的话。感谢您指出这一点,@DarkCygnus!【参考方案2】:

你在这行有问题 - request.setDestinationInExternalPublicDir("/BlueNet/",fileName);

只需删除此行或以其他方式创建目录。

【讨论】:

【参考方案3】:

使用DownloadManger 类下载带有HTTP URL 的文件时遇到问题;但后来我做了以下事情,问题就解决了。

代替此代码:

String url = "http://masteranime.ir/music/best/Dragon Ball GT Dan Dan Kokoro Hikareteku.mp3";
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));

使用此代码:

String url = "http://masteranime.ir/music/best/Dragon Ball GT Dan Dan Kokoro Hikareteku.mp3";
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url).replaceAll(" ","%20"));

【讨论】:

【参考方案4】:
request.setDestinationInExternalPublicDir("/BlueNet/", fileName);

您必须在此处提及目录作为第一个参数。 /BlueNet/ 不是目录。

【讨论】:

以上是关于下载管理器不工作的主要内容,如果未能解决你的问题,请参考以下文章

任务管理器进程中的cpu不见了怎么办

Atom 包管理器不工作

警报管理器不工作... android.app.ReceiverRestrictedContext

在 api 27、28、29 中保护应用程序时,工作管理器不运行

Tizen Studio 模拟器和设备管理器不工作

Google跟踪代码管理器不工作?