前面讲了Android中URI含义和基本用途,这里主要将的是URI的命名方式。

     ContentProvider进行数据交互时就需要用到URI。为了让客户端程序能够使用你的数据,你必须要定义一个公开的URI,它由一些固定格式的文字组成,可以分成下面几个部分:
content://
一个标准的URI前缀,它用来指示Android必须从ContentProvider中挑出一个来处理这个URI。
authority
一个唯一的标识符,标示这个URI需要查找的ContentProvider是由哪个组织开发的,一般用跟java包命名规范相似的方式来署名这个开发组 织。如果是Android内置的provider,则这个authority可以省略掉,否则authority是必须的,Google建议使用用户自定 义的继承ContentProvider的类的全名来作为,这个ContentProvider所要处理的URI的authority
path(路径)
ContentProvider根据这个路径信息来判断要返回什么类型的数据,所以这个后缀路径可以自由定义,但是有一些条件限制:
如果一个ContentProvider能查询返回很多种不同类型的数据,URI后缀要设置不同类型的数据所对应不同的URI后缀如内置的Contact ContentProvider就是用来处理名片夹,它可以返回很多种类型的数据:联系人、电话、联系方式等。所以对应这些不同类型的数据就有不同的URI后缀匹配:

content://contacts/people/1
上面是返回一个人员
content://contacts/people/1/phone/3
返回一个电话号码。
而且我们要为不同的数据类型设置不同的MIME类型,第一个MIME类型是:vnd.android.cursor.item/person第二个MIME类型是:vnd.android.cursor.item/phone。
同时ContentProvider不仅可以返回单条数据,也可能以目录的形式返回多条数据。以上面2个URI来说,后缀的结尾都是数字,这表示查询对应某条记录,所以返回的数据是单条的,而如果是查询目录的形式就要去掉后面的数字如:
content://contacts/people/1/phone
content://contacts/people
上面就是目录形式,对应他们的MIME类型也不同,所以我们将单条的MIME类型中的item改为dir,所以MIME类型是:vnd.android.cursor.dir/phone和vnd.android.cursor.dir/person。
A: 标准前缀,表达的意思是使用ContentProvider来处理信息。

B: authority

C: 后缀1,一般用来表示请求需要获取的是哪种类型的数据(确定MIME类型的功能)。

D:定位记录。确定对应类型的数据中的哪条记录。