URI是统一资源标识符(Uniform Resource Identifier) ,它的作用是根据这个URI找到某个资源文件,基本格式如: file:///sdcard/temp.jpg(就是根据你提供的例子生成的一个路径)。
ContentProvider是程序间共享数据的,它也需要生成URI供别的程序调用,格式如:
content:///StudentDB/student/name,以后你在别的程序想访问另一个程序里的数据库,就可以用这个URI去访问了,而不用进行数据库连接的操作,非常方便。
至于已知文件的Uri如何转换为该文件所在路径,核心代码如下:
Uri uri = intent.getData();
File file = null;
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = getActivity().managedQuery(uri, proj, null,null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String filepath = cursor.getString(column_index);
file = new File(filepath<span style="font-family: Arial, Helvetica, sans-serif;">);</span>
file就是该文件的绝对路径。