在Android中,为了使用数据集中管理模式,使用了ContentProvider来进行数据管理,在使用ContentProvider进行 数据交互时就需要用到URI。为了让客户端程序能够使用你的数据,你必须要定义一个公开的URI,它由一些固定格式的文字组成,可以分成下面几个部分:

content://

一个标准的URI前缀,它用来指示Android必须从ContentProvider中挑出一个来处理这个URI。

authority

一个唯一的标识符,标示这个URI需要查找的ContentProvider是由哪个组织开发的,一般用跟java包命名规范相似的方式来署名这个 开发组织。如果是Android内置的provider,则这个authority可以省略掉,否则authority是必须的,Google建议使用用 户自定义的继承ContentProvider的类的全名来作为,这个ContentProvider所要处理的URI的authority

path(路径)

ContentProvider根据这个路径信息来判断要返回什么类型的数据,所以这个后缀路径可以自由定义,但是有一些条件限制:货运专家

如果一个ContentProvider能查询返回很多种不同类型的数据,URI后缀要设置不同类型的数据所对应不同的URI后缀如内置的 Contact ContentProvider就是用来处理名片夹,它可以返回很多种类型的数据:联系人、电话、联系方式等。所以对应这些不同类型的数据就有不同的 URI后缀匹配:

1
content://contacts/people/1

上面是返回一个人员

1
content://contacts/people/1/phone/3

返回一个电话号码。

而且我们要为不同的数据类型设置不同的MIME类型,第一个MIME类型是:vnd.android.cursor.item/person第二个MIME类型是:vnd.android.cursor.item/phone。

同时ContentProvider不仅可以返回单条数据,也可能以目录的形式返回多条数据。以上面2个URI来说,后缀的结尾都是数字,这表示查询对应某条记录,所以返回的数据是单条的,而如果是查询目录的形式就要去掉后面的数字如:软件开发

1
2
content://contacts/people/1/phone
content://contacts/people

上面就是目录形式,对应他们的MIME类型也不同,所以我们将单条的MIME类型中的item改为dir,所以MIME类型是:vnd.android.cursor.dir/phone和vnd.android.cursor.dir/person。

A: 标准前缀,表达的意思是使用ContentProvider来处理信息。

B: authority

C: 后缀1,一般用来表示请求需要获取的是哪种类型的数据(确定MIME类型的功能)。

D:定位记录。确定对应类型的数据中的哪条记录。

转载于:https://www.cnblogs.com/ctou45/archive/2011/08/17/2142476.html

Android中URI的格式相关推荐

  1. android 视频转字节,如何将视频文件(.mp4)格式转换为android中的二进制格式?...

    我想在网络服务器上传视频.我得到了我想要以二进制格式传递文件的服务,我该怎么做?如何将视频文件(.mp4)格式转换为android中的二进制格式? 我试图通过base64将视频文件转换为二进制格式.. ...

  2. Android解析xml的方法,Android中解析XML格式数据的方法

    XML介绍:Extensible Markup Language,即可扩展标记语言 一.概述 Android中解析XML格式数据大致有三种方法: SAX DOM PULL 二.详解 2.1 SAX S ...

  3. Android中Uri的使用

    1.Uri 通用资源标志符(Universal Resource Identifier, 简称"URI"). Uri代表要操作的数据,Android上可用的每种资源 - 图像.视频 ...

  4. Android中Uri 和Path之间的相互转化

    Android Uri to Path 现在遇到的常规Uri有两种: 媒体文件的Uri是content://, 表示这是一个数据库数据.去数据库查询正常返回. 其他的文件Uri是file://, 表示 ...

  5. android中uri的作用,Android UrlUri详细解析

    概述 在项目开发中,有时会遇到解析Url.Uri的需求,要从中得到链接中的相应字段.参数等.有多种实现方式,在这里总结一下应用到的. URL与URI的区别 Uri - 统一资源标志符 Url - 统一 ...

  6. Android中Uri和Path之间的转换

    Android Uri to Path 现在遇到的常规Uri有两种: 媒体文件的Uri是content://, 表示这是一个数据库数据.去数据库查询正常返回 其他的文件Uri是file://, 表示这 ...

  7. android打开各种文件格式,笔记-Android中打开各种格式的文件(apk、word、excel、ppt、pdf、音视频、图片等)...

    打开后缀.apk的文件.即启动安装程序. //apkFilePath 文件路径 public void installAPK(String apkFilePath) { // 创建URI Uri ur ...

  8. android中edittext设置密码格式,Android 自定义EditText(带清理、密码可见、不可见)...

    实际开发中经常会遇到输入框,各种不同的需求,在一般情况下,清除内容,以及密码可见与不可见基本很常见,那么不废话直接上代码! 在res\values\attrs.xml中 .java import an ...

  9. android 中解析json格式数据

    本文来自http://tonysun3544.iteye.com/category/188238 package com.tony.json; import android.app.Activity; ...

最新文章

  1. Nature综述:真菌的多样性:真菌的高通量测序及鉴定
  2. C++ dll 类型与 C#类型对应关系
  3. BZOJ2002: [Hnoi2010]Bounce 弹飞绵羊
  4. 认识微软Visual Studio Tools for AI
  5. 安装程序无法创建新的系统分区也无法定位现有系统分区_如何拥有一个 Windows 10 和 Debian 10 的双系统...
  6. 点(Dot)与像素(Pixel)的区别
  7. oracle监听 客户 实例,oracle 数据库实例 监听
  8. StandardContext
  9. Visual Studio 2008的注册方法(解除试用90天)
  10. 这几个行业会从物联网革命中获得最大利益
  11. Office 365系列之十二:ActiveDirectory同步
  12. 【改进】C# WinForm捕获全局异常 SamWang
  13. Nginx 与 Tomcat,Apache的区别
  14. 从词袋到 Transfomer,NLP 十年突破史
  15. Java Web中相对路径与绝对路径的分析
  16. 微软:SolarWinds 黑客的目标是受害者的云数据
  17. windows IIS的IUSR和IIS_IUSRS 2
  18. 杰控连接mysql_杰控FameView在数据库连接和查询方面的应用
  19. 在CSDN开通博客专栏后如何发布文章及改进建议(图文)
  20. 无电流时二极管压降问题

热门文章

  1. java jni librtmp_编译Android平台libRTMP库
  2. java 装饰器_JAVA装饰器模式
  3. mysql 数据库连接不够_(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例...
  4. 初入java行业,环境你可知如何配置
  5. Python3+TensorFlow人脸识别:1-1课程导学
  6. 导出oracle数据c#代码,C# 程序导入导出oracle数据库
  7. php点击按钮查询,管理界面点击按钮打开查询功能
  8. mysql 创建分区索引吗_MySQL分区字段列有必要再单独建索引吗?
  9. oracle导入导出还原,Oracle 备份 还原 数据库 导入导出
  10. loot recycler_loot++ - MC百科搜索 - MC百科|最大的Minecraft中文MOD百科