Upload file bằng uri trên Android

Tram Ho

Có thể các bạn cũng đã biết thì từ trên các hệ điều hành android mới giúp bảo vệ tốt hơn cho dữ liệu ứng dụng và người dùng trên bộ nhớ ngoài. Những việc thao tác trực tiếp thông qua filePath sẽ không thể sử dụng được nữa đối với các developer android.

Và google cũng đã tạo ra một flag là requestLegacyExternalStorage trên Android 10 cho các developer có thêm thời gian để cập nhật ứng dụng của mình để tương thích với cập nhật mới này. Tuy nhiên flag này sẽ trở nên vô tác dụng trên Android 11
(Chi tiết hơn bạn có thể xem thêm tại link full HD này)
Việc không thể lấy được trường file path nữa sẽ gây tương đối khó khăn trong việc xử lý file trên android như: đọc file, upload file,…

Trong bài viết này mình sẽ suggest các bạn phương pháp để có thể upload file thông qua uri.

Giả sử mình có api để tạo người dùng với Body cần thiết bao gồm “name”, “date_of_birth” với 1 file ảnh là ảnh đại diện của người dùng.

Chọn ảnh từ thư viện

Tạo request body từ Uri

Hàm lấy mediaType của file trong class Utils

Call api add User

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo