`

Android 之Content Provider(URI)存储

阅读更多

Keywords: content provider, URI
Content Provider这个东西在Android平台上是最常用的共享数据的方法(似乎应用程序之间共享数据也只有这种方法吧,待求证)。虽然常用,但是这个东 西要理解透彻还是要先掌握一些基础的。URI就是Content Provider(简称CP)的基础。我们要标识一个CP,就必须用URI这个东东。这就类似于我们要通过网址来标识某个特定网站,实际上网址URL本身 就是一种URI。URI全称Uniform Resource Identifier, 它包括了URL和URN。而关于它们的详细解释,有心的朋友可以参考RFC3896:http://tools.ietf.org/html /rfc3986。URI不仅可以标识特定CP,还可以标识CP中特定的数据库表,就好像URL不仅可以标识特定网站,也可以标识这个网站某个特定网页一 样。实际上在Android平台上URI的用途更广泛一些,它还用于Intent中data的标识。
就Android平台而言,URI主要分三个部分:scheme, authority and path。其中authority又分为host和port。格式如下:
scheme://host:port/path
举个实际的例子:
content://com.example.project:200/folder/subfolder/etc
\---------/  \---------------------------/ \---/ \--------------------------/
scheme                 host               port        path
                \--------------------------------/
                          authority   

现在大家应该知道data flag中那些属性的含义了吧,看下data flag
<data android:host="string"
      android:mimeType="string"
      android:path="string"
      android:pathPattern="string"
      android:pathPrefix="string"
      android:port="string"
      android:scheme="string" />
但是我们在程序中一般是不直接用URI来标识CP的,是的,正如我们通常见到的用定义的常量来标识。例如standard CP中的Contacts,我们就用Contacts.People.CONTENT_URI来标识Contacts CP中People这个表。那么要标识某个具体的人怎么办呢? 这就用到了ContentUris.withAppendedId() 和 Uri.withAppendedPath()。例如我们要表示content://contacts/people/20,那么我们就可以用如下语句:
Uri uri = ContentUris.withAppendedId(People.CONTENT_URI, 20); 或者
Uri uri = Uri.withAppendedPath(People.CONTENT_URI, "20");

分享到:
评论

相关推荐

    Android基础 Content Provider

    **Android基础 Content Provider** 在Android开发中,Content Provider是一个至关重要的组件,它充当了应用程序间数据共享的桥梁。本文将深入探讨Content Provider的基本概念、创建方法、如何进行CRUD(Create、...

    android content provider示例程序(简单记账)

    在Android开发中,Content Provider是四大组件之一,它扮演着数据共享的角色,使得不同应用程序间可以安全地访问和操作数据。这篇博文的示例程序"android content provider示例程序(简单记账)"旨在帮助开发者理解...

    Android Content Provider Demo

    在Android开发中,Content Provider是四大组件之一,它扮演着数据共享的角色,使得不同应用程序间可以安全地访问和操作数据。本"Android Content Provider Demo"着重于演示如何创建和使用Content Provider来实现跨...

    Content Provider获取联系人和图片

    1. **媒体存储库的Content Provider**:Android系统提供了MediaStore类,其中包含用于访问媒体文件(如图片、视频、音频)的Content Uri。 2. **查询图片**:使用ContentResolver查询MediaStore.Images.Media....

    content_provider_demo

    Content Provider是Android系统中四大组件之一,它的主要职责是封装和管理应用中的数据,并对外提供统一的接口,使得其他应用可以方便地读取或修改这些数据。在`content_provider_demo`中,开发者可能会看到一个...

    android content provider

    Content Provider作为Android四大组件之一,为其他应用提供了访问私有数据的标准化接口。通过Content Provider,一个应用可以将自己的数据暴露出去,让其他应用进行读取或者写入操作,实现了不同应用间的数据共享。 ...

    content provider实现数据共享demo(内有两个项目)

    在Android应用开发中,Content Provider是一种重要的组件,它允许应用程序之间进行数据共享。Content Provider作为Android系统中的数据接口,能够使一个应用的数据被其他应用访问和操作,这在多应用协同工作或者数据...

    android provider

    在Android系统中,Content Provider是四大组件之一,它扮演着数据共享和交换的重要角色。Content Provider使得应用程序可以将自己的数据暴露给其他应用,同时也能够访问其他应用公开的数据。在这个"android provider...

    Android组件content provider使用解析

    Android 组件 Content Provider 使用解析 ...Content Provider 是 Android 四大组件之一,提供了跨应用程序之间的数据共享机制,实现了统一的接口,简化了数据的存储和获取,并对数据进行封装,隐藏了数据存储的细节。

    编写content provider

    在Android系统中,Content Provider是四大组件之一,它扮演着数据共享的角色,使得不同应用程序之间可以安全地访问和操作数据。这篇博客“编写Content Provider”很可能是深入解析如何创建和使用自定义Content ...

    Android内容提供者(Content provider)

    1. **定义与作用**:Content Provider是Android系统中用于存储、读取和更新应用间数据的接口,它通过统一的URI(Uniform Resource Identifier)来标识特定的数据集。 2. **结构**:每个Content Provider都由一系列...

    Content Provider

    Content Provider 是 Android 四大组件之一,主要用于实现跨应用之间的数据共享。在 Android 开发中,应用程序通常需要与系统或其他应用程序进行数据交互,例如读取联系人信息、获取媒体文件等。Content Provider 为...

    Android应用程序组件Content Provider的共享数据更新通知机制分析.doc

    Content Provider基于URI机制,使得不同应用能够访问和修改存储在Content Provider中的数据。当数据发生更新时,为了确保所有依赖该数据的应用都能及时获取到最新的信息,Android引入了一种数据更新通知机制。 ...

    2011.09.07(5)——— android 跨进程通信之content provider + AutoCompleteTextView

    Content Provider作为Android四大组件之一,是系统提供的一种结构化数据共享机制,而AutoCompleteTextView则是一个可以为用户输入提供自动补全建议的视图。 首先,我们来深入理解Content Provider。Content ...

    content provider 和sqllite用法整理

    在Android开发中,Content Provider和SQLite数据库是两个非常重要的组件,它们主要用于数据的存储和共享。下面将详细讲解这两个概念及其用法。 首先,我们来理解Content Provider。Content Provider是Android系统...

    Android的Content ProviderS说明文档

    在Android系统中,Content Provider扮演着至关重要的角色,它是四大组件之一,负责数据的共享与交换。本说明文档将深入探讨Content Provider的概念、工作原理、使用方法以及它在实际开发中的应用。 一、Content ...

    使用Content Provider案例

    在Android系统中,Content Provider是四大组件之一,它扮演着数据共享的角色,使得不同应用程序间可以安全地访问和操作数据。本案例将深入探讨如何创建和使用Content Provider,以实现跨应用的数据交换。 首先,...

    自定义Content Provider

    3. **定义Content URI**:在AndroidManifest.xml中声明你的Content Provider,并指定它的权威名称,例如`&lt;data android:scheme="content" android:pathPrefix="/items" /&gt;`。 4. **数据库操作**:创建一个...

    简单实现自己的Content Provider(一)

    在Android系统中,Content Provider是四大组件之一,它扮演着数据共享的角色,使得不同应用程序之间可以安全地访问和操作数据。这篇博客“简单实现自己的Content Provider(一)”旨在引导开发者如何从零开始构建一...

Global site tag (gtag.js) - Google Analytics