下载管理器不工作

时间:2016-05-06 22:33:01

标签: android video android-download-manager

我正在尝试开发显示视频的应用,您可以下载它 我正在使用Download Manager类,但它没有用,也没有给我任何错误:(

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

    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”

filename :“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" />

所以请任何帮助

4 个答案:

答案 0 :(得分:2)

正如我在评论中所说,DownloadManager仅处理以http://https://开头的请求,您可以看到in the docs

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

答案 1 :(得分:1)

我在使用 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"));

答案 2 :(得分:0)

您在此行中遇到问题-request.setDestinationInExternalPublicDir("/BlueNet/",fileName);

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

答案 3 :(得分:0)

request.setDestinationInExternalPublicDir("/BlueNet/", fileName);

你必须在这里提到目录作为第一个参数。 /BlueNet/ 不是目录。