2016-06-29 10 views
3

Ich habe eine Datei (133465.pdf) mit dem Download-Manager heruntergeladen und jetzt ist es im Ordner Downloads des Mobiltelefons gespeichert (Interner Speicher).Öffnen Sie eine heruntergeladene Datei (pdf) aus dem Ordner Downloads im INTERNEN SPEICHER

Wie soll ich die heruntergeladene PDF-Datei aus dem Ordner "Downloads" herunterladen?

Ich benutze den folgenden Code, um zu versuchen, die PDF aus dem Download-Ordner abrufen, aber ich bekomme einen Fehler auf dem Toast, mit der Aussage: "Kann PDF nicht anzeigen (133465.pdf kann nicht geöffnet werden)".

String file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() + File.separator + "133465.pdf"; 
       Log.i("Fragmentadapter1", file); 
       File videoFile2Play = new File(file); 
       Intent i = new Intent(); 
       i.setAction(android.content.Intent.ACTION_VIEW); 
       i.setDataAndType(Uri.fromFile(videoFile2Play), "application/pdf"); 
       imageContext.startActivity(i); 

Ich weiß nicht, ob ich den richtigen Speicherort verwende, um auf die Datei zuzugreifen.

Jede Hilfe oder Anregung wird geschätzt.

Antwort

3

Wenn Sie für Lollopop und Below arbeiten: Sie müssen den Benutzer nicht um Erlaubnis zur Laufzeit bitten. Die Manifest-Berechtigungen werden ausreichen.

Wenn Sie für Marshmellow und up arbeiten: Sie müssen den Benutzer nach permission zur Laufzeit fragen und entsprechend der Benutzerausgabe handeln.

Erinnern Sie: Sie müssen die Erlaubnis auf dem Manifest auch noch geben.

DownloadManager downloadmanager; 
    Environment 
      .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) 
      .mkdirs(); 

    downloadmanager = (DownloadManager) getApplication().getSystemService(Context.DOWNLOAD_SERVICE); 
    String url = hardcode + bb ; 
    Uri uri = Uri.parse(url); 
    DownloadManager.Request request = new DownloadManager.Request(uri) 
      .setTitle(bb) 
      .setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, 
        bb) 
      .setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 
    Log.i("Download1", String.valueOf(request)); 
    downloadmanager.enqueue(request); 

Reference

So zeigen Sie die heruntergeladene PDF aus dem Download-Ordner des Geräts Users::

Um ein PDF auf den Download-Ordner herunterladen

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() + File.separator + 
      "YOUR FILE NAME"); 
    Uri path = Uri.fromFile(file); 
    Log.i("Fragment2", String.valueOf(path)); 
    Intent pdfOpenintent = new Intent(Intent.ACTION_VIEW); 
    pdfOpenintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    pdfOpenintent.setDataAndType(path, "application/pdf"); 
    try { 
     this.startActivity(pdfOpenintent); 
    } catch (ActivityNotFoundException e) { 

    } 

Hinweis: Stellen Sie sicher, dass Sie die Erlaubnis gewährt, bevor das Herunterladen der PDF-Datei für Marshmellow und UP heruntergeladen wird.