最近做项目要通过图片的绝对路径找到图片的
URI
,然后删除图片,小小总结一下获取
URI
的方法,亲自试
验在
android4.1.3
的系统上都是可用的。
1.
将所有的图片路径取出,遍历比较找到需要的路径,取出
URI
,效率较低
其中
MediaStore.MediaColumns.DATA
字段存的就是图片的绝对路径,
最后
mImageUri
得到的就是图片的
URI
1
UrimUri=Uri.parse("content://media/external/images/media");
2
UrimImageUri=
null
;
3
Cursorcursor=managedQuery(
4
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null
,
null
,
null
,
5
MediaStore.Images.Media.DEFAULT_SORT_ORDER);
6
cursor.moveToFirst();
7
8
while
(!cursor.isAfterLast()){
9
Stringdata=cursor.getString(cursor
10
.getColumnIndex(MediaStore.MediaColumns.DATA));
11
if
(picPath.equals(data)){
12
int
ringtoneID=cursor.getInt(cursor
13
.getColumnIndex(MediaStore.MediaColumns._
ID));
14
mImageUri=Uri.withAppendedPath(mUri,""+ringtoneID);
15
break
;
16
}
17
cursor.moveToNext();
18
}
2.
直接从媒体数据库根据字段取出相应的记录,效率较高
1
//TYLT:addbyduanyf1027start
2
Stringtype=Utils.ensureNotNull(intent.getType());
3
Log.d(TAG,"uriis"+uri);
4
if
(uri.getScheme().equals("file")&&(type.contains("image/"))){