Android中Uri简介 用法

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);

猜你喜欢

转载自blog.csdn.net/I_am_a_loser/article/details/120327869
今日推荐