2014-07-16 19 views
5

Tôi đã tải xuống thành công tệp pdf bằng API DownloadManager trong Android.không thể mở tệp tải xuống thông qua trình quản lý tải xuống api

Quyền kê khai được đặt chính xác. Tệp được tải xuống chính xác.

Nhưng khi nó được cố gắng mở nó nói "không thể mở tệp".

Vui lòng trợ giúp để mở tệp đã tải xuống. Tôi đoán tôi đã không đặt tên và phần mở rộng thích hợp cho tệp. Làm thế nào để thiết lập nó?

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

Vui lòng hiển thị mã nơi bạn cố gắng xác định tên tệp và mở tệp. – greenapps

+0

Tôi không cố gắng mở tệp từ ứng dụng của mình. Pdf sẽ được tải xuống vào thư mục tải xuống và từ đó người dùng mở thủ công nó. Tệp đã tải xuống đó không được mở. –

+0

Bạn đã nhân đôi dòng '' 'request.allowScanningByMediaScanner();' '' bên trong vòng lặp if của bạn và trên dòng thứ ba đến dòng cuối cùng. –

Trả lời

4

Khắc phục sự cố. Vấn đề là thiết lập loại MIME cho tệp đã tải xuống. Bằng cách googling theo mặc định, máy chủ gửi tệp dưới dạng loại nội dung của nó dưới dạng ứng dụng/x-download thay vì ứng dụng/pdf. Vì vậy, trong các loại mime thiết lập như pdf.

Tôi đã thay đổi điều này request.setMimeType(".pdf"); thành request.setMimeType("application/pdf"); là vậy.

+0

Xin hãy giúp tôi tôi tải xuống tệp jpg thông qua cùng một trình tải xuống và không thể mở tệp ngay cả khi đặt mimetype thành ứng dụng/jpg còn gì khác phải làm –

+0

Vui lòng thử một lần với ứng dụng/jpeg hoặc ứng dụng/png –

+0

Tôi đã thử với liên kết khác đang hoạt động tốt nhưng với nội dung tải xuống trên google drive không thể mở được, vui lòng kiểm tra câu hỏi của tôi tại đây https://drive.google.com/open?id=1bBd6Q4YyOMdYDV_v3boyYlrcecoaDXwOZw –

Các vấn đề liên quan