Content Provider 基础 之URI

转载 2010年06月04日 18:03:00

http://notfatboy.javaeye.com/blog/582834

 

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其它方面的基础。 

《非程序员》第四期

《非程序员》第四期名    称: 《非程序员》第四期设    计: UMLCHINA编    者: UMLCHINA联系邮件: think@umlchina.com 版    本: 第四期文件大小: ...
  • dbbdggdbbdgg
  • dbbdggdbbdgg
  • 2001-08-12 14:32:00
  • 600

初识ContentProvider(之Uri匹配器)

在上一篇博客中写到了将从另一个应用程序里获取的数据显示在控制台上,在这篇博客中将会讲如何将数据显示在listView上,而且对 listView上的数据做修改操作,那么其他的删除,添加,也可以照此举一...
  • qiuqiu_qiuqiu123
  • qiuqiu_qiuqiu123
  • 2017-02-08 15:56:06
  • 605

ContentProvider学习笔记(下)--查看内存卡上的图片

android系统同样为其他的应用程序访问多媒体资源提供了ContentProvider MediaStore.Audio.Media.EXTERNAL_CONTENT_URI:存储在SD卡上的音频...
  • liuwei0604
  • liuwei0604
  • 2013-02-20 23:08:46
  • 3339

【Android基础知识】ContentProvider(二)自定义ContentProvider和URI

在Android平台上创建ContentProvider,相对而言是很容易的。你所需做的就是继承ContentProvider这个抽象类,然后重新它里面的各种方法。 下面将介绍如何创建一个Con...
  • u010583599
  • u010583599
  • 2016-06-06 11:45:51
  • 797

adb命令行查询content-provider

adb shell content delete --uri content://settings/settings/pointer_speed adb shell content quer...
  • u013571833
  • u013571833
  • 2016-11-30 11:24:34
  • 1383

Content Provider 基础之URI

  • kepoon
  • kepoon
  • 2010-08-20 21:33:00
  • 459

Content Provider 基础 之URI

Content Provider这个东西在Android平台上是最常用的共享数据的方法(似乎应用程序之间共享数据也只有这种方法吧,待求证)。虽然常用,但是这个东 西要理解透彻还是要先掌握一些基础的。U...
  • founder_chenhao
  • founder_chenhao
  • 2015-12-04 10:56:34
  • 83

Content Provider 基础之 URI

Content Provider这个东西在Android平台上是最常用的共享数据的方法(似乎应用程序之间共享数据也只有这种方法吧,待求证)。虽然常用,但是这个东 西要理解透彻还是要先掌握一些基础的。U...
  • xiangyong2008
  • xiangyong2008
  • 2010-04-28 13:24:00
  • 623

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

  • 2015年04月11日 11:24
  • 2.13MB
  • 下载

内容URI及自定义ContentProvider重写方法

内容URI内容URI:权限+路径 权限:用于不同的应用程序做区分,一般都采用程序包名的方式命名。 路径:用于对同一应用中不同的表做区分的,通常会添加到权限的后边。 如:content://com...
  • aiynmimi
  • aiynmimi
  • 2016-03-31 12:03:56
  • 937
收藏助手
不良信息举报
您举报文章:Content Provider 基础 之URI
举报原因:
原因补充:

(最多只允许输入30个字)