urlからファイルをダウンロードして一般的なダウンロードフォルダに保存しようとしています。 setDestinationInExternalPublicDir()
は機能せず、例外もスローされません。しかし、setDestinationInExternalFilesDir()
は問題なく動作します。どのような理由が考えられるのでしょうか?setDestinationInExternalFilesDir()が動作しないsetDestinationInExternalPublicDir()does not
webView.setDownloadListener(new DownloadListener() {
@Override
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimeType,
long contentLength) {
if (url.startsWith("data:")) {
save(url);
return;
}
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setMimeType(mimeType);
String cookies = CookieManager.getInstance().getCookie(url);
request.addRequestHeader("cookie", cookies);
request.addRequestHeader("User-Agent", userAgent);
request.setDescription(getResources().getString(R.string.downloadingMsg));
String filename = URLUtil.guessFileName(url, contentDisposition, mimeType);
request.setTitle(filename);
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
//DOESN'T WORK
request.setDestinationInExternalPublicDir("Downloads", filename);
//WORKS
//request.setDestinationInExternalFilesDir(getApplicationContext(), "Downloads", filename);
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(request);
Toast.makeText(getApplicationContext(), R.string.downloadingMsg, Toast.LENGTH_LONG).show();
}
});
とマニフェストファイル:URLからダウンロード画像の
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
https://stackoverflow.com/questions/32635704/ android-permission-doesnt-work-even-if-i-have-declared-it – CommonsWare