Ich habe folgendes Problem:Wie stelle ich das Download-Ziel meines WebView in den Downloads-Ordner ein, ohne den Namen der Datei zu kennen?
Ich habe eine WebView
. Dieser WebView
hat einen Download-Listener, der fungiert, wenn der Benutzer versucht, eine Datei herunterzuladen.
Ich möchte, dass die Datei in den regulären Ordner "Downloads" heruntergeladen wird. Ich kann dies tun, indem
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, title);
mit Aber wie speichere ich die Datei unter dem ursprünglichen Namen?
Ich kann nicht
String name = URLUtil.guessFileName(url, null, mimetype);
Da die URL verwenden, die nicht den Dateinamen enthält aufgerufen wird.
Mein Download-Manager sieht derzeit wie folgt aus:
mainWebView.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
// Show a download notification
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
String title = URLUtil.guessFileName(url, null, mimetype);
// Set directory of where the file should be saved to
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, title);
// Start the download
dm.enqueue(request);
}
}
Anmerkung: Ich derzeit die URLUtil.guessFilename()
Methode verwende, denn das wird mir erlauben, meine Datei zu speichern, Ereignis, wenn es unter dem falschen Namen.