irpas技术客

Android中Uri简介 用法_dangjunhao_android uri

网络 3638

1.Uri

通用资源标识符(Universal Resource Identifier) 简称Uri

Uri 代表要操作的数据,Android 上可用的资源(图像、视频片段)都可以用Uri表示

? ? ? ? Android的Uri由以下三部分组成

? ? ? ? 1."content://"、数据的路径、标识ID(可选)

例如所有图片

? ? ? ? 1. Uri:content://media/external

? ? ? ? 2. Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;

某个图片

Uri:content://media/external/images/media/4

Android? 提供他了两个用于操作Uri的工具类,分别为UriMatcher 和ContentUris

2.UriMatcher

UriMatcher 类主要用于匹配Uri

使用方法

//从系统相册中获取照片 public static ArrayList<String> getSystemPhotoList(Context context) { ArrayList<String> pictureList = new ArrayList<String>(); Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; ContentResolver contentResolver = context.getContentResolver(); //上下文解算器 Cursor cursor = contentResolver.query(uri, null, null, null, null); if (cursor == null || cursor.getCount() <= 0) return null; // 没有图片 while (cursor.moveToNext()) { int index = cursor .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); String path = cursor.getString(index); // 文件地址 File file = new File(path); if (file.exists()) { pictureList.add(path); Log.d(TAG, path); } } return pictureList ; }

3.ContentUris

ContentUris 类 用于获取Uri路径后面的ID

? ? ? ? 3.1 为路径加上ID

Uri uri = Uri.parse("content://com.yfz.Lesson/people") Uri uri = Uri.parse("content://com.yfz.Lesson/people") 通过withAppendedId方法,为该Uri加上ID Uri resultUri = ContentUris.withAppendedId(uri, 10); Uri resultUri = ContentUris.withAppendedId(uri, 10);

? ? ? ? 3.2 从路径中获取ID

Uri uri = Uri.parse("content://com.yfz.Lesson/people/10") long personid = ContentUris.parseId(uri); Uri uri = Uri.parse("content://com.yfz.Lesson/people/10") long personid = ContentUris.parseId(uri);


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Android #uri #resource #identifier #简称UriUri #代表要操作的数据Android