android – 无法打开通过下载管理器api下载的文件

前端之家收集整理的这篇文章主要介绍了android – 无法打开通过下载管理器api下载的文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在android中使用DownloadManager API成功下载了一个pdf文件.

正确设置清单权限.
文件下载正确.

但当试图打开它时说“无法打开文件”.

请帮忙打开下载的文件.我想我没有为文件设置正确的名称和扩展名.怎么设置呢?

  1. private void DownloadBook(String url,String title){
  2. DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
  3. //request.setDescription("Some descrition");
  4. String tempTitle = title.replace(" ","_");
  5. request.setTitle(tempTitle);
  6. // in order for this if to run,you must use the android 3.2 to compile your app
  7. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
  8. request.allowScanningByMediaScanner();
  9. request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
  10. }
  11. request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,tempTitle+".pdf");
  12. // get download service and enqueue file
  13. DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
  14. request.setMimeType(".pdf");
  15. request.allowScanningByMediaScanner();
  16. request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);
  17. manager.enqueue(request);
  18. }
最佳答案
问题解决了.问题在于为下载的文件设置MIME类型.默认情况下,通过谷歌搜索,服务器将文件作为其内容类型发送为application / x-download而不是application / pdf.所以在设置mime类型为pdf.

我更改了这个request.setMimeType(“.pdf”); request.setMimeType(“application / pdf”);
而已.

猜你在找的Android相关文章