Help Android Đang truy xuất thông tin tệp

Thảo luận trong 'Hỏi & Đáp công nghệ' bắt đầu bởi nguyenlan1997, 5/12/18.

  1. nguyenlan1997

    nguyenlan1997 Member

    Tham gia ngày:
    14/5/18
    Bài gửi:
    69
    Đã được thích:
    0
    Điểm thành tích:
    6
    Trước khi ứng dụng lập trình Android khách cố gắng làm việc với tệp có URI nội dung, ứng dụng có thể yêu cầu thông tin về tệp từ ứng dụng máy chủ, bao gồm loại dữ liệu của tệp và kích thước tệp.

    Kiểu dữ liệu giúp ứng dụng Android khách xác định xem nó có thể xử lý tệp hay không và kích thước tệp giúp ứng dụng khách thiết lập bộ nhớ đệm và bộ nhớ đệm cho tệp.

    Bài học Lập trình Android này trình bày cách truy vấn ứng dụng máy chủ FileProvider để lấy ra loại và kích cỡ MIME của một tệp tin.




    [​IMG]

    Truy lục loại MIME của một tệp
    Loại dữ liệu của tệp cho biết ứng dụng của khách hàng cách nó xử lý nội dung của tệp.

    Để có được kiểu dữ liệu của một tệp được chia sẻ cho URI nội dung của nó, ứng dụng khách gọi ContentResolver.getType(). Phương thức này trả về kiểu MIME của tệp.

    Theo mặc định, FileProvider xác định loại MIME của tệp từ phần mở rộng tên tệp của nó.

    Đoạn mã sau đây minh họa cách ứng dụng Học lập trình Android khách truy xuất loại MIME của tệp khi ứng dụng máy chủ trả lại URI nội dung cho ứng dụng khách:

    KOTLIN
    JAVA


    ... / * * Lấy nội dung của tệp URI từ Intent đến, sau đó * lấy kiểu MIME của tệp * / val mimeType : String ? = returnIntent . dữ liệu ? cho { returnUri -> contentResolver . getType ( returnUri ) } ...

    Truy xuất tên và kích thước của tệp

    Các FileProvider lớp học Học lập trình Android có một thực hiện mặc định của query()phương thức trả về tên và kích thước của tập tin liên kết với một nội dung URI trong một Cursor.

    Việc triển khai mặc định trả về hai cột: DISPLAY_NAME Tên của tệp, dưới dạng a String. Giá trị này giống với giá trị được trả về bởi File.getName(). SIZE Kích thước của tệp theo byte, dưới dạng long Giá trị này giống với giá trị được trả về bởi File.length()

    Ứng dụng Học lập trình Android khách có thể nhận cả tệp DISPLAY_NAME và SIZE cho tệp bằng cách đặt tất cả các đối số của query()thành null trừ URI nội dung. Ví dụ, đoạn mã này lấy một tập tin của DISPLAY_NAME và SIZE và hiển thị mỗi một trong riêng biệt TextView:

    KOTLIN
    JAVA

    / *
    * Lấy URI nội dung của tập tin từ Intent đến,
    * sau đó truy vấn ứng dụng máy chủ để lấy tên hiển thị của tệp
    * và kích thước.
    * /
    returnIntent . dữ liệu ? cho { returnUri ->
    contentResolver . truy vấn ( returnUri , null , null , null , null ) } ?. sử dụng { cursor -> / * * Lấy các chỉ mục cột của dữ liệu trong Con trỏ, * di chuyển đến hàng đầu tiên trong Con trỏ, lấy dữ liệu,


    * và hiển thị nó.
    * / val nameIndex = con trỏ . getColumnIndex ( OpenableColumns . DISPLAY _ TÊN ) val sizeIndex = con trỏ . getColumnIndex ( OpenableColumns . SIZE ) con trỏ . moveToFirst () findViewById < TextView > ( R . id . filename _ văn bản ). text = con trỏ .


    getString ( nameIndex )
    findViewById < TextView (> R . id . filesize _ văn bản ). text = con trỏ . getLong ( sizeIndex ). toString () ... }
     

Chia sẻ trang này