这几天做了一个APP,需要读取本地相册图片获取图片的路径然后再进行进一步的处理。这个需要先获取图片的URI,然后根据URI获取图片路径,根据图片路径获取图片。图片URI有两种格式,一种是file开头,一种是content开头。网上查了资料,基本都是按Android的系统去进行区分的,什么Android4.4前,Android4.4后。但是本人经过测试,发现按Android系统进行区分是无效的。
先说图片URI格式,我测试后发现有这两种:
file:///storage/emulated/0/DCIM/Camera/IMG_20170613_132837.jpg和
content://media/external/images/media/1028。要获取的图片路径是:
/storage/emulated/0/DCIM/Camera/IMG_20170613_132837.jpg
本人使用的测试机华为Android4.4.4,6.0,7.0,魅蓝 Android5.1,魅族MX4 Android4.4.2,图片的URI都是content开头。使用红米Android6.0.1,中兴Android6.0,图片URI都是file开头。
基于此,发现根据Android版本去判断图片URI类型是不靠谱的。
现在我的做法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (re