1. URI:统一资源标识符
URI是统一资源标识符,是一个用于标识某一互联网资源名称的字符串。 该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作。URI由包括确定语法和相关协议的方案所定义。由是三个组成部分:访问资源的命名机制、存放资源的主机名、资源自身的名称,由路径表示。
1.1 URI的使用方法
schema:用来说明一个ContentProvider 控制哪些数据。”content://”
authority:主机名或授权,它定义了是哪个ContentProvider 提供这些数据
path:路径,URI 下的某一个Item。
ID:通常定义Uri 时使用”#”号占位符代替, 使用时替换成对应的数字
content://com.itheima.provider/person/#:#表示数据id(#代表任意数字)
content://com.itheima.provider/person/:来匹配任意文本。
为系统的每一个资源给其一个名字,比方说通话记录。
1、每一个ContentProvider都拥有一个公共的URI,这个URI用于表示这个ContentProvider所提供的数据。
2、Android所提供的ContentProvider都存放在android.provider包中。 将其分为A,B,C,D 4个部分:
A:标准前缀,用来说明一个Content Provider控制这些数据,无法改变的;”content://”
B:URI 的标识,它定义了是哪个Content Provider提供这些数据。对于第三方应用程序,为了保证URI标识的唯一性,它必须是一个完整的、小写的 类名。这个标识在 元素的 authorities属性中说明:一般是定义该ContentProvider的包.类的名称;”content://hx.android.text.myprovider”
C:路径,不知道是不是路径,通俗的讲就是你要操作的数据库中表的名字,或者你也可以自己定义,记得在使用的时候保持一致就ok了;”content://hx.android.text.myprovider/tablename”
D:如果URI中包含表示需要获取的记录的ID;则就返回该id对应的数据,如果没有ID,就表示返回全部; “content://hx.android.text.myprovider/tablename/#” #表示数据id
通用资源标志符(Universal Resource Identifier, 简称”URI”)。
Uri代表要操作的数据,Android上可用的每种资源 - 图像、视频片段等都可以用Uri来表示。
URI一般由三部分组成:
- 访问资源的命名机制。
- 存放资源的主机名。
- 资源自身的名称,由路径表示。
Android的Uri由以下三部分组成: “content://”、数据的路径、标示ID(可选)举些例子,如:
- 所有联系人的Uri: content://contacts/people
- 某个联系人的Uri: content://contacts/people/5
- 所有图片Uri: content://media/external
- 某个图片的Uri:content://media/external/images/media/4
1.2 URI常用方法
方法 | 说明 |
---|---|
withAppendedPath() | 追加路径 |
encode() | |
fromFile() | 从一个文件新建一个uri |
parse() | 解析uri |
getScheme() | 获取uri中的schema部分 |
getLastPathSegment() |
我们很经常需要解析Uri,并从Uri中获取数据。
Android系统提供了两个用于操作Uri的工具类,分别为UriMatcher 和ContentUris 。
虽然这两类不是非常重要,但是掌握它们的使用,会便于我们的开发工作。下面就一起看一下这两个类的作用。