AndroidのWebViewからファイルをダウンロードしたい
AndroidのWebViewからファイルをダウンロードしたいのですが困っていることがあります。
ダウンロードしたいファイルがサイト内にログインしてからでないとダウンロード出来ないファイルの場合どのように処理を書けばいいのでしょうか?(直接URLを踏むとアクセス出来ませんと表示される仕組みになっていて、サイトにはログインしているという前提です)
現在はこのような処理を書いています。
mWebView.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
String filename = "test";
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("Downloading file...");
request.setTitle(URLUtil.guessFileName(url, contentDisposition, mimetype));
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, filename);
DownloadManager dm = (DownloadManager) getSystemService(android.content.Context.DOWNLOAD_SERVICE);
dm.enqueue(request);
Toast.makeText(context, filename + " タウンロードしました。", Toast.LENGTH_LONG).show();
}
});
■状況
・読み書きの権限周りの設定は終わっています。
・url変数を誰もが自由にダウンロード出来るウェブページの画像に途中で書き換えてテストを行うとダウンロード出来ます。
・このままダウンロードしようとした場合、ダウンロードに失敗します。
といった状況です。何か原因が分かる方がいれば教えて頂けると非常に助かります。
よろしくお願いいたします。