2017-07-19 3 views
-1

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.

Antwort

0

SOLUTION

Die Lösung die richtige contentDisposition zum URLUtil.guessFileName() Funktion vorging.

den Titel, das geht wie folgt aus:

String title = URLUtil.guessFileName(url, contentDisposition, mimetype); 

(Alle Parameter übergeben werden, in die public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength))

Verwandte Themen