2014-07-16 159 views
5

我成功下載了使用Android中的DownloadManager API的pdf文件。無法打開通過下載管理器api下載的文件

清單權限設置是否正確。 文件正確下載。

但是當它試圖打開它說:「無法打開文件」。

請幫忙打開下載的文件。我想我沒有爲文件設置正確的名稱和擴展名。如何設置它?

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

請在您嘗試確定文件名的位置顯示代碼並打開文件。 – greenapps

+0

我不試圖從我的應用程序中打開文件。 pdf將被下載到下載文件夾中,並從那裏用戶手動打開它。該下載的文件沒有被打開。 –

+0

您在if循環中和第三行到最後一行中複製了'''request.allowScanningByMediaScanner();'''行。 –

回答

4

問題解決了。問題在於爲下載的文件設置MIME類型。通過默認搜索,服務器將文件作爲其應用程序/ x下載的內容類型發送,而不是application/pdf。所以在設置MIME類型爲PDF。

我把這個request.setMimeType(".pdf");改爲request.setMimeType("application/pdf"); 就是這樣。

+0

請幫助我,我下載通過相同downloadmanger的JPG文件,不能打開的文件,甚至設置MIME類型爲application/JPG還有什麼我必須做 –

+0

請與應用程序/ JPEG或應用程序嘗試一次/ PNG –

+0

我與其他鏈接嘗試這是工作正常,但與谷歌驅動器下載的內容無法打開,請檢查我的問題在這裏https://drive.google.com/open?id=1bBd6Q4YyOMdYDV_v3boyYlrcecoaDXwOZw –

相關問題