0

我正在使用下载管理器从我的服务器下载 MP3 文件。

这是它的代码。

public String createFilePath()
    {
        String path;
        String dir  = "APP_NAME";

        path = Environment.getExternalStorageDirectory().getPath();



        File file = new File(Environment.getExternalStorageDirectory(),dir);
        if(!file.exists())
        {
            file.mkdir();
        }

        path +=   "/" +dir + "/";

        System.out.println("-- saving path : " + path);
        return path;
    }

    public void startDownload() {
        Uri uri=Uri.parse(URLFixer.Fix(DATA.url));




        System.out.println("-- download path : " + createFilePath() + FileNameGetter.getFileName(DATA..url));

        DownloadManager.Request request = new Request(uri);
        request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI |DownloadManager.Request.NETWORK_MOBILE);
        request.setAllowedOverRoaming(false);
        request.setTitle(DATA..title);
        request.setDescription(DATA.artist + " - " + DATA.album);


        request.setDestinationInExternalFilesDir(activity, createFilePath(), FileNameGetter.getFileName(DATA..url));
        //      request.setNotificationVisibility(Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);




        if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB) {
            //                  request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN);
            request.setNotificationVisibility(Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
        }


        lastDownload=   mgr.enqueue(request);
        isDownloading = true;
        Toasts.pop(activity, "Download Started!!");

        //      v.setEnabled(false);
        //      findViewById(R.id.query).setEnabled(true);
    }

问题是它应该保存在文件夹“APP_NAME”内的 SD 卡上,但是一旦下载了音频,我就无法在该文件夹中看到它,当我播放音频并检查它的信息时,它显示的路径就像 thie

/sdcard/Android/data/com.X.app/files/mnt/sdcard/APP_NAME/file.mp3

由于它被保存在数据文件夹中,用户无法看到该文件。如何修复它以将其移动到主 SD 卡,即 /mnt/sdcard/APP_NAME 以便用户可以看到它。

4

1 回答 1

0

DownloadManager.Request.setDestinationUri(Uri uri)应该符合您的要求,allowScanningByMediaScanner()如果您希望通过 MediaScanner 扫描 MP3,请记得致电。

于 2013-07-13T05:27:38.217 回答