(1)需要操作的ContentProvider;
(2)对ContentProvider中的什么数据进行操作。
Uri做成部分:
ContentProviderscheme由Android规定为:content://;主机名(authority)用来唯一标识找到它;路径由要操作的业务而定。
把字符串转换为Uri方法:
Uri uri = Uri.parse("content://com.qgmobile.providers.personprovider/person")
Uri代表要操作数据,Android提供了操作Uri的工具类:
(1)UriMatcher类
(2)ContentUris类
UriMatcher类:(用于匹配Uri)
(1)注册需要匹配Uri路径:
//常量UriMatcher.NO_MATCH表示不匹配任何路径的返回码
UriMatcher sMatcher = new UriMatcher(UriMatcher.NO_MATCH);
//如果match()方法匹配content://cn.itcast.provider.personprovider/person路径,返回匹配码为1
sMatcher.addURI(“cn.itcast.provider.personprovider”, “person”, 1);
//如果match()方法匹配content://cn.itcast.provider.personprovider/person/230路径,返回匹配码为2
sMatcher.addURI(“cn.itcast.provider.personprovider”, “person/#”, 2);//#号为通配符
(2)注册完需要匹配的Uri后,就可以使用sMatcher.match(uri)方法对输入的Uri进行匹配,如果匹配就返回匹配码
switch (sMatcher.match(Uri.parse("content://cn.itcast.provider.personprovider/person/10"))) {
case 1
break;
case 2
break;
default://不匹配
break;
}
ContentUris类:
ContentUris类用于获取Uri路径后面的ID部分,它有两个比较实用的方法:
(1)withAppendedId(uri, id)用于为路径加上ID部分:
Uri uri = Uri.parse("content://cn.itcast.provider.personprovider/person")
Uri resultUri = ContentUris.withAppendedId(uri, 10);
//生成后的Uri为:content://cn.itcast.provider.personprovider/person/10
(2)parseId(uri)方法用于从路径中获取ID部分:
Uri uri = Uri.parse("content://cn.itcast.provider.personprovider/person/10")
long personid = ContentUris.parseId(uri);//获取的结果为:10