`
- 浏览:
560037 次
- 性别:
- 来自:
武汉
-
Android 之 ContentProvider的简介-相关类的介绍
Content Provider 的简单介绍:
* Android中的Content Provider 机制可支持在多个应用中存储和读取数据。这也是跨应用
共享数据的唯一方式。在Android系统中,没有一个公共的内存区域,供多个应用共享存储数据;
* Android 提供了一些主要数据类型的ContentProvider ,比如:音频、视频、图片和私人通讯录等;
在android.provider 包下面找到一些android提供的ContentProvider;可以通过获得ContentProvider,
查询他们包含的数据(查询的条件是:已经获得适当的读取权限);
1、Uri的介绍:
Uri代表了要操作的数据,Uri主要包含了两部分的信息:
* 需要操作的ContentProvider
* 对ContentProvider 中的什么数据进行操作;
一个Uri由下列几个部分组成:
content://cn.itcast.provider.personprovider/person/10
解析:
* content:// :scheme
* cn.itcast.provider.personprovider : 主机名或anthority
* person/10 : 路径
* 10 : ID
1.1: ContentProvider(内容提供者)的scheme 已经由Android所规定,scheme为
content://主机名(或叫Authority)用于唯一标识这个ContentProvider,外
部调用者可以根据这个标识来找到它。路径path,可以用来表示我们要操作的
数据,路径的构建应根据业务定,例如:
(1) 要操作person表中id为10的记录,构建路径如下:/person/10;
(2) 要操作person表中id为10 的记录的name字段:person/10/name;
(3) 要操作person表中的所有记录: /person;
(4) 要操作xxx表中的记录: /xxx;
(5) 如果要操作的数据部是来自数据库,而是来自文件、xml或网络等其他存储方式;
例如:要操作xml文件中person节点下的name节点,构建路径如下:/person/name
如果要把一个字符串转换成Uri,可以使用Uri类中的parse()方法:
Uri uri = Uri.parse("content://itcast.provider.personprovider/person");
2、UriMatcher 类使用介绍:
由于Uri代表了要操作的数据,所以经常需要解析Uri,并从Uri中获取数据,Android中提供
了两个用于操作Uri的工具类:
* UriMatcher
* ContentUris
UriMatcher 类,用于匹配Uri,用法如下:
/* UriMathcer 类的用法 */
public void uriMatcher(){
/* 常量UriMatche.NO_MATCH 标示部匹配任何路径的返回码 */
UriMatcher sMatcher = new UriMatcher(UriMatcher.NO_MATCH);
/* 如果match()方法匹配content://cn.itcast.provider.personprovider/person 路径,
* 返回匹配码为 1
*/
/* 添加需要匹配的URL ,如果匹配就会返回匹配码 */
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 */
int code = sMatcher.match(Uri.parse("content://cn.itcast.provider.personprovider/person/10"));
}
提示:
注册需要匹配的Uri后,就可以使用sMatcher.match(uri)方法对输入的Uri进行匹配,如果匹配
就返回匹配码,匹配码是调用addURI()方法传入的第三个参数;
3、ContentUris 类的使用介绍:
ContentUris类,用于获取Uri路径后面的ID部分,有两个比较实用的方法:
* withAppended(uri,id) 用于为路径加上ID 部分;
Uri uri = Uri.parse("content://cn.itcast.provider.personprovider/person");
/* 为路径添加ID部分 */
Uri resultUri = ContentUris.withAppendedId(uri, 10);
/* 添加后的值为:content://cn.itcast.provider.personprovider/person/10 */
* parseID(uri) 从路径中获取ID 部分;
Uri uri = Uri.parse("content://cn.itcast.provider.personprovider/person/10");
/* 下列获取到的结果是:10 */
long personid = ContentUris.parseId(uri);
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在Android系统中,ContentProvider是四大组件之一,它主要负责数据的存储和共享。这篇博客“contentprovider--读取写入联系人数据”显然聚焦于如何利用ContentProvider操作设备上的联系人信息。ContentProvider作为...
在Android系统中,ContentProvider是一种核心组件,它扮演着数据共享和访问的桥梁角色。ContentProvider使得应用程序可以将自己的数据结构公开,让其他应用能够安全地读取或写入这些数据,实现了不同应用间的资源...
在Android开发中,ContentProvider是四大组件之一,它扮演着数据共享的重要角色。ContentProvider使得应用程序之间能够安全、有序地访问彼此的数据,无论是系统内置的数据(如联系人、日历等)还是自定义的数据存储...
总之,"Android之ContentProvider手机簿使用"这篇博客深入浅出地讲解了如何利用ContentProvider实现对Android系统联系人数据的访问和操作,同时也介绍了ContentProvider在Android应用间数据共享的重要性。...
接下来,ContentProvider是Android四大组件之一,它提供了一种标准接口,使得其他应用程序可以访问和修改由ContentProvider管理的数据,无论这些数据是存储在SQLite数据库、文件系统还是网络中。要创建一个...
1. **创建ContentProvider类**:继承自`android.content.ContentProvider`抽象类,重写其生命周期方法,如`onCreate()`,以及CRUD相关的方法,如`query()`, `insert()`, `update()`, `delete()` 和 `getType()`。...
在Android开发中,ContentProvider是四大核心组件之一,它扮演着跨应用数据共享的角色。通过ContentProvider,一个应用可以将自己的数据暴露给其他应用,实现数据的透明访问。本篇内容将深入讲解ContentProvider的...
ContentProvider是Android四大组件之一,它为其他应用程序提供了统一的接口来读取和写入数据。通过ContentProvider,即使数据存储在私有SQLite数据库中,其他应用也能安全地访问这些数据,而无需暴露数据库的直接...
总结起来,"android大作业之---图书信息管理系统"涵盖了Android应用开发的核心技术,包括用户界面设计、数据管理、活动交互、数据操作以及用户体验优化等方面。通过实践这样的项目,开发者能深入理解Android应用开发...
相关概念介绍1)ContentProvider简介当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式...
例如,你可以创建一个名为`DatabaseContract`的类,其中包含表名、列名以及与之相关的URI。 ```java public class DatabaseContract { public static final String AUTHORITY = "com.example.provider"; public ...
在Android系统中,ContentProvider是四大组件之一,它扮演着数据共享和访问的重要角色。ContentProvider客户端是指应用程序通过ContentResolver接口来与ContentProvider交互,获取或修改存储在ContentProvider中的...
首先,ContentProvider是Android四大组件(Activity、Service、BroadcastReceiver、ContentProvider)之一,其主要任务是为其他应用提供统一的数据访问接口。在Android系统中,每个ContentProvider都对应一个Uri...
ContentProvider是一个抽象类,它是Android四大组件之一,负责管理应用程序的数据,并提供统一的访问机制。开发者需要继承ContentProvider并重写其中的关键方法,如`query()`, `insert()`, `update()`, `delete()`...
8. **CPOther可能涉及的内容**:如果"ContentProvider"文件夹下有一个名为"CPOther"的子文件,它可能包含了一些与ContentProvider相关的辅助类或工具方法,比如自定义的数据库操作类、数据转换工具等,这些辅助类...
Android 自定义ContentProvider简单实例主要介绍了Android 自定义ContentProvider简单实例的相关资料,需要的朋友可以参考下。Android 允许我们定义自己的ContentProvider 对象来共享数据,实践起来,简单来实现一下...
ContentProvider是Android四大组件(Activity、Service、BroadcastReceiver、ContentProvider)之一,它为其他应用程序提供了统一的数据访问接口。通过ContentProvider,你可以将自己的应用数据暴露出去,比如联系人...
以下是对Android多媒体开发的详细介绍: 1. **多媒体文件支持**:Android支持多种多媒体文件格式,如MP3、AAC、WAV(音频)、MP4、3GP、WebM(视频)以及JPEG、PNG、GIF、BMP(图像)。Android Media Framework是...