2014-07-16 104 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 –

相关问题