2009-02-08 29 views
24

Tôi đã tự hỏi ý định tải URL là gì? Trong trình duyệt, nó sẽ tải về các công cụ với một biểu tượng thông báo nhỏ. Tôi đã tự hỏi nếu tôi có thể sử dụng ý định đó (và nó là gì).Android Tải về Intent

+0

Tôi thành thật không biết bạn đang hỏi gì ở đây, vui lòng làm rõ. –

+0

Để xem lại câu hỏi cũ này - đó là mục đích riêng tư. Nhìn vào DownloadManager trong AOSP. –

+0

bạn có bất kỳ liên kết/hướng dẫn/nguồn nào về cách gọi Trình quản lý tải xuống này không? Và, bằng cách riêng tư, do đó không thể sử dụng được cho chúng tôi, bạn có tìm thấy một loại thay thế nào đó về cách tải xuống tệp không? – TiGer

Trả lời

58

Ứng dụng có thể tải xuống tệp bằng trình quản lý tải xuống giống như trình duyệt và gmail. Điều này có sẵn bắt đầu với Gingerbread.

Ứng dụng của bạn cần có quyền INTERNET để bắt đầu tải xuống. Để lưu tệp trong thư mục Tải xuống mặc định, nó cũng cần quyền cho phép WRITE_EXTERNAL_STORAGE.

Đây là cách bạn có thể tải về một URI:

DownloadManager.Request r = new DownloadManager.Request(uri); 

// This put the download in the same Download dir the browser uses 
r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "fileName"); 

// When downloading music and videos they will be listed in the player 
// (Seems to be available since Honeycomb only) 
r.allowScanningByMediaScanner(); 

// Notify user when download is completed 
// (Seems to be available since Honeycomb only) 
r.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 

// Start download 
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); 
dm.enqueue(r); 

Có một loạt các tùy chọn khác để tùy chỉnh thông báo, truy vấn trạng thái tải về và cài đặt các vị trí tải.

This blog post cho biết cách bạn có thể sử dụng trình quản lý tải xuống trên các phiên bản trước của Android thông qua API ẩn.

+0

Tại sao nó luôn hiển thị "Tải xuống không thành công" trên Android 4.4? –

0

Có giao diện here ở tất cả các mục đích Android.

+0

Điều đó tốt nhưng không có ai bắt đầu tải xuống (có thể là trình duyệt, tôi sẽ thử). Dù sao cũng cảm ơn bạn. –

+0

Không, trình duyệt không hoạt động - dù sao đi nữa. Tôi có thể phải làm điều đó bằng tay. –

+0

@MBober: nó hoạt động với tôi ... – GregD

2

Bạn đang cố gắng làm gì? Nếu ứng dụng của bạn muốn tải xuống tệp, bạn có thể sử dụng mã UrlConnection. Nếu bạn muốn tải xuống một gói thì ACTION_PACKAGE_INSTALL sẽ làm những gì bạn muốn.

+0

Tôi biết, nhưng trình duyệt có tải xuống - thông báo - thingy và tôi nghĩ nếu đó là mục đích công khai, tôi có thể sử dụng nó thay thế. Tôi đoán tôi sẽ phải làm điều đó bằng tay. Cảm ơn, Isaac –

+3

Tôi nhận ra điều này là cũ, nhưng câu trả lời được chấp nhận này không phải là câu trả lời hay nhất, và thành thật không thực sự là câu trả lời cho tất cả những gì đang được hỏi. Thay vào đó, câu trả lời "đúng" được đánh giá cao hơn là từ Alexandre Jasmin bên dưới. – Josh

17

Mặc dù tôi không tin rằng có ý định tải xuống trong trình duyệt, bạn có thể sử dụng Mục đích ACTION_VIEW thông thường và yêu cầu trình duyệt quyết định tải xuống hay xem url dựa trên loại nội dung.

Vì vậy, từ mã kích hoạt của bạn

new Intent(Intent.ACTION_VIEW, Uri.parse(url)) 

và hy vọng điều này gây nên một download trong trình duyệt.

+0

Tải xuống này với trình duyệt nhưng không có bất kỳ thanh tiến trình hoặc phản hồi của người dùng nào - tôi chỉ nhận được thông báo tải xuống hoàn tất. –

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