【问题标题】: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 下载图像或其他内容,而不是从本地网络下载文件?
  • 不,但是当我将链接放入浏览器时,我可以下载它
  • 试一试,告诉我它是否有效。

标签: android video android-download-manager


【解决方案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/ 不是目录。

      【讨论】:

        猜你喜欢
        • 2015-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多