25

ダウンロード マネージャーについて質問があります。サイトからファイルをダウンロードします。ダウンロード用のデフォルト ディレクトリ (Environment.DIRECTORY_DOWNLOAD) を設定すると、すべて正常に動作し、ダウンロードが開始されます。しかし、ディレクトリを変更しようとすると、アプリはファイルをダウンロードしません。特に、ファイルをダウンロード内のフォルダー (/storage/sdcard/Download/myFolder など) に入れたいと考えています。どうすれば修正できますか?

File mydownload = new File (Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)+ "/myFolder");

if (!mydownload.exists()){
    mydownload.mkdir();
}

String url = sUrl[0];
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    request.allowScanningByMediaScanner();
    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}

request.setDestinationInExternalPublicDir(mydownload.getAbsolutePath(),"Myfile.extension");


DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
4

4 に答える 4

14

使用できるオプションは 2 つあります。

1) 最初に setDestinationInExternalPublicDir を指定すると、DIRECTORY_DOWNLOADS、DIRECTORY_MUSIC などのメディア タイプに基づいて、Android の標準ダウンロード フォルダにダウンロードできます。これらのファイルは、アンインストール後も残ります。

request.setDestinationInExternalPublicDir(DIRECTORY_DOWNLOADS,
        File.separator + folderName + File.separator + fileName);

最初の引数は、これが正しく機能するための標準のダウンロード ディレクトリである必要があり、それ以外の値を指定することはできません。

2) 2 番目は setDestinationInExternalFilesDir です。これは前の方法と同じですが、アプリのアンインストール後にこれらのファイルが削除される点が異なります。

request.setDestinationInExternalFilesDir(context, DIRECTORY_DOWNLOADS, 
        File.separator + folderName + File.separator + fileName);

ここで、2 番目の引数は null または任意の Android ダウンロード ディレクトリにすることができます。

于 2014-10-13T02:56:33.707 に答える