`
notfatboy
  • 浏览: 237550 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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");

好了现在我们应该理解URI是怎么回事了,后续我再写CP其它方面的基础。
分享到:
评论
1 楼 goldenrod_z4 2011-03-29  
非常详细,了解了,谢谢

相关推荐

    查看android.provider包中的uri内容

    在Android开发中,`android.provider`包是系统提供的一个核心包,主要用于与系统的各种内容提供者(Content Provider)进行交互。这些内容提供者是Android系统数据共享的关键组件,它们允许应用访问并操作如联系人、...

    Android基础 Content Provider

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

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

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

    content_provider_demo

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

    Content Provider获取联系人和图片

    在Android系统中,Content Provider是四大组件之一,它扮演着数据共享的角色,使得不同应用程序之间可以安全地访问和操作数据。本篇文章将深入探讨如何利用Content Provider获取联系人和图片,以及相关的知识点。 ...

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

    在项目中,通常会定义一个或多个Uri常量,这些Uri是Content Provider对外提供的数据访问入口。每个Uri对应一类数据,可以理解为数据表或者数据集合。通过`UriMatcher`可以方便地匹配不同的Uri,从而调用相应的处理...

    Content Provider的使用

    在Android系统中,Content Provider是四大组件之一,它扮演着数据共享的角色,使得不同应用程序之间可以安全地交换数据。这篇博客“Content Provider的使用”深入探讨了如何在Android开发中利用Content Provider实现...

    编写content provider

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

    content provider.doc

    它是Android四大组件(Activity、Service、BroadcastReceiver和Content Provider)之一,允许开发者安全地暴露应用数据,供其他应用访问。以下是对Content Provider的详细说明: 1. **Content Provider的概念**: ...

    android中Content Provider

    在Android系统中,Content Provider是四大组件之一,它是应用程序间数据共享的核心机制。Content Provider允许一个应用暴露其数据,使得其他应用可以读取或者写入这些数据,甚至跨应用程序进行数据交换。这篇博客...

    Android Content Provider Demo

    在Android开发中,Content Provider是四大组件之一,它扮演着数据共享的角色,使得不同应用程序间可以安全地访问和...通过实践这个Demo,开发者可以掌握Content Provider的基本用法,为以后的项目开发打下坚实的基础。

    Android新手Content Provider获取通讯录,短信,通话记录

    理解Content Uri的概念和作用,掌握通过Content Provider访问联系人的方法,掌握通过Content Provider访问通话记录的方法,掌握通过Content Provider访问短信的方法。

    2011.09.07(4)——— android 跨进程通信之content provider

    这些项目可能包含一个基础的Content Provider实现以及对应的Activity,用于展示如何通过Content Resolver与Content Provider交互。 总的来说,Content Provider是Android系统中实现跨进程数据共享的核心机制,...

    content provider 和sqllite用法整理

    当其他应用想要访问数据时,它们通过Content Provider的URI请求数据,Content Provider再调用SQLite数据库的相关操作来处理这些请求。 以下是一个简单的使用步骤: 1. **创建数据库**:创建一个继承自...

    Content Provider

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

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

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

    android 自定义 Content Provider示例

    在Android开发中,Content Provider是四大组件之一,它充当了数据共享和交换的桥梁,使得不同的应用程序之间可以安全地共享数据。本示例将详细解析如何自定义Content Provider,以便在Android应用间实现数据共享。 ...

    Android内容提供者(Content provider)

    Content Provider作为Android四大组件之一,允许应用程序将其数据公开给其他应用,同时也可访问其他应用的数据,实现了跨应用的数据共享。 ### 一、Content Provider基础 1. **定义与作用**:Content Provider是...

    使用Content Provider案例

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

Global site tag (gtag.js) - Google Analytics