前言
本篇将从图片(文件)上传服务器的课题着手,讲述AndroidQ中如何通过本地uri路径上传服务器
相关系列文章
- AndroidQ(10)分区存储完美适配
- AndroidQ(10)分区存储完美适配之图片(文件)上传
- AndroidQ(10)分区存储完美适配之图片(文件)下载保存本地
- AndroidQ(10)分区存储完美适配之图片压缩并保存
为什么需要通过Uri上传文件呢?file路径不可以吗?
AndroidQ版本以上,禁止使用File API本地路径操作文件图片,包括文件上传、下载、图片加载等功能。
-
file路径和uri区别
file路径格式:
file:///storage/emulated/Pictures/.....
uri格式:
context://media/external/images/media/81302
如何获取
-
通过
ContentResolver.openFileDescriptor
接口,选择对应的打开方式。例如”r”表示读,”w”表示写,返回
ParcelFileDescriptor
类型的文件描述符。
InputStream inputStream = null;
ParcelFileDescriptor pfd = context.getContentResolver().openFileDescriptor(fileUri, "r");
if (pfd != null) {
inputStream = new FileInputStream(pfd.getFileDescriptor());
}
此方法在AndroidQ以下也可支持,所以对于文件图片上传来说,可以不需要区分系统版本。