2014-07-16 14 views
5

Ho scaricato con successo un file PDF utilizzando DownloadManager API in Android.non può aprire il file scaricato tramite download manager api

permessi Manifest siano impostate correttamente. File scaricato correttamente.

Ma quando si cerca di aprire si dice "Impossibile aprire il file".

Si prega di aiutare ad aprire il file scaricato. Suppongo che non stavo impostando il nome e l'estensione appropriati per il file. Come impostarlo?

private void DownloadBook(String url, String title){ 

    DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); 
    //request.setDescription("Some descrition"); 
    String tempTitle = title.replace(" ","_"); 
    request.setTitle(tempTitle); 
    // in order for this if to run, you must use the android 3.2 to compile your app 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     request.allowScanningByMediaScanner(); 
     request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 
    } 
    request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, tempTitle+".pdf"); 

    // get download service and enqueue file 
    DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); 
    request.setMimeType(".pdf"); 
    request.allowScanningByMediaScanner(); 
    request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI); 
    manager.enqueue(request); 
} 
+0

prega di mostrare il codice in cui si tenta di determinare il nome del file e aprire il file. – greenapps

+0

Non sto provando ad aprire il file dalla mia app. Il pdf verrà scaricato nella cartella dei download e da lì l'utente lo aprirà manualmente. Il file scaricato non viene aperto. –

+0

Hai duplicato la riga '' 'request.allowScanningByMediaScanner();' '' all'interno del tuo ciclo if e nella terza alla riga precedente. –

risposta

4

Problema risolto. Il problema è nell'impostazione del tipo MIME per il file scaricato. Googling per impostazione predefinita il server invia il file come tipo di contenuto come application/x-download anziché application/pdf. Quindi nel tipo mime impostato come pdf.

Ho cambiato questo request.setMimeType(".pdf"); a request.setMimeType("application/pdf"); questo è tutto.

+0

Please help me sto scaricando il file jpg via stesso downloadmanger e Impossibile aprire il file anche impostare il tipo MIME a application/jpg che altro devo fare –

+0

Si prega di provare una volta con l'applicazione/jpeg o application/png –

+0

Ho provato con l'altro collegamento che funziona bene, ma con i contenuti scaricati da google drive non possono essere aperti, si prega di controllare la mia domanda qui https://drive.google.com/open?id=1bBd6Q4YyOMdYDV_v3boyYlrcecoaDXwOZw –

Problemi correlati