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