每一种Content Provider 开放一个唯一公共URI(由ContentURI封装),它将被客户端用于从内容提供器请求/添加/更新/删除数据。URI有2种形式:一是指出该类型数据的所有值,二是指出该类型数据的特定记录,比如
- content://contacts/people/ 从设备返回通讯录姓名列表
- content://contacts/people/23 返回通讯录中ID=23的单行记录
当应用将请求发送到设备,要求获取整体数据或指定数据,Android将返回一个包含指定行的记录集游标
// Get the base URI for contact with _ID=23.
// This is same as Uri.parse("content://contacts/people/23");
Uri myPerson = ContentUris.withAppendedId(People.CONTENT_URI, 23);
// Query for this record.
Cursor cur = managedQuery(myPerson, null, null, null);注意请求字符串不是一个标准的SQL请求,URI字符串描述了返回数据的类型。这个URI由3部分组成:字符串“content://”;一个描述数据类型的段;一个可选的在特定内容范围内某特定记录的ID