android的uri以及UriMatcher讲解
2015-11-09 20:39
405 查看
1. Uri
通用资源标志符(Universal Resource Identifier, 简称"URI");
Uri代表要操作的数据,Android上可用的每种资源-图像、视频片段等都可以用Uri来表示。
URI一般由三部分组成:
访问资源的命名机制。
存放资源的主机名。
资源自身的名称,由路径表示。
Android的Uri由以下三部分组成:"content://"、数据路径、标示ID
举例子,如:
所有国家的Uri: content://contacts/country/4
某个国家的Uri:content://contacts/country
某个视频Uri:content://media/video/2
Android系统提供了两个用于操作Uri的工具类,分别为UriMatcher和ContentUris.
下面讲解一下UriMatcher.
2.UriMatcher
UriMatcher类主要用于匹配Uri.
使用方法:
第一步,初始化:
UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);
第二步注册需要的Uri:
matcher.addURI("country", "america", 0);
matcher.addURI("country", "china", 1);
第三步与已经注册的Uri进行匹配:
Uri uri = Uri.parse("content://" + "country" + "/america");
int match = matcher.match(uri);
switch(match) {
case 0:
return "logout arimerca";
case 1:
return "logout china";
default:
return null;
}
}
match方法匹配后会返回一个匹配码Code, 即在使用注册方法addURI时传入的第三个参数。
--常量 UriMatcher.NO_MATCH 表示不匹配任何路径的返回码
--#表示通配符
--* 表示任意字符
官方的sdk应该进行修改为private static final UriMatcher sURIMatcher = new UriMatcher();
static
{
sURIMatcher.addURI("contacts", "people", PEOPLE);
sURIMatcher.addURI("contacts", "people/#", PEOPLE_ID);
sURIMatcher.addURI("call_log", "calls/filter/*", CALLS_FILTER);
sURIMatcher.addURI("call_log", "calls/#", CALLS_ID);
}
通用资源标志符(Universal Resource Identifier, 简称"URI");
Uri代表要操作的数据,Android上可用的每种资源-图像、视频片段等都可以用Uri来表示。
URI一般由三部分组成:
访问资源的命名机制。
存放资源的主机名。
资源自身的名称,由路径表示。
Android的Uri由以下三部分组成:"content://"、数据路径、标示ID
举例子,如:
所有国家的Uri: content://contacts/country/4
某个国家的Uri:content://contacts/country
某个视频Uri:content://media/video/2
Android系统提供了两个用于操作Uri的工具类,分别为UriMatcher和ContentUris.
下面讲解一下UriMatcher.
2.UriMatcher
UriMatcher类主要用于匹配Uri.
使用方法:
第一步,初始化:
UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);
第二步注册需要的Uri:
matcher.addURI("country", "america", 0);
matcher.addURI("country", "china", 1);
第三步与已经注册的Uri进行匹配:
Uri uri = Uri.parse("content://" + "country" + "/america");
int match = matcher.match(uri);
switch(match) {
case 0:
return "logout arimerca";
case 1:
return "logout china";
default:
return null;
}
}
match方法匹配后会返回一个匹配码Code, 即在使用注册方法addURI时传入的第三个参数。
--常量 UriMatcher.NO_MATCH 表示不匹配任何路径的返回码
--#表示通配符
--* 表示任意字符
官方的sdk应该进行修改为private static final UriMatcher sURIMatcher = new UriMatcher();
static
{
sURIMatcher.addURI("contacts", "people", PEOPLE);
sURIMatcher.addURI("contacts", "people/#", PEOPLE_ID);
sURIMatcher.addURI("call_log", "calls/filter/*", CALLS_FILTER);
sURIMatcher.addURI("call_log", "calls/#", CALLS_ID);
}
相关文章推荐
- Android动态加载学习笔记(一)
- MPAndroidChat的PieChart和BarChart学习
- 从源码角度解析Android事件分发机制
- Android中Cursor类的概念和用法
- 搭建Android开发环境
- OS X-Android-VLC编译过程
- android环境配置
- Android 中的DisplayMetrics类的用法
- Android 和 js 相互调用
- android 进度条设置显示格式
- [置顶] Android afterTextChanged中逻辑卡顿的问题
- Trinea性能优化之Java(Android)代码优化
- 【基于Jsoup】Android通过Jsoup抓取网页信息详解(一)
- android5.1系统定制应用全屏界面实现禁止状态栏下拉
- aq-Android版本检测升级
- Android-如何将android studio项目上传至github
- android 自定义 环形进度条
- Error: Activity class {XXX} does not exist的问题解决
- Android 之 text relocations的简单解决方法
- Android. ImageView with SVG Support