到顶部
Android API
公众的摘要

文档提供者

延伸内容提供者
java.lang.Object(java.lang.对象)
   ↳ android内容。内容提供者
     ↳ android.provider。文档提供者

课程概述

文档提供程序的基类。文档提供程序提供读写功能访问持久文件,例如存储在本地磁盘上的文件或云存储服务。要创建文档提供程序,请扩展此类,实现抽象方法,并将其添加到清单中,如下所示:

<清单>...<应用程序>...<提供商android:name=“com.example.MyCloudProvider”android:authorities=“com.example.mycloudprovider”android:exported=“true”android:grantUriPermissions=“true”android:permission=“android.permission.MANAGE_DOCUMENTS”android:enabled=“@bool/isAtLeastKitKat”><意图过滤器><action android:name=“android.content.action.DOCUMENTS_PROVIDER”/></into-filter></provider>...</应用程序></manifest>

定义提供者时,必须使用管理_文档,这是一个权限只有系统才能获得。应用程序无法使用文档提供程序直接;他们必须通过操作打开文档操作_创建_文档这需要用户主动导航并选择文档。当用户通过该UI选择文档时,系统向请求应用程序颁发窄URI权限授予。

文件

文档可以是可打开的流(具有特定的MIME类型),也可以是包含其他文档的目录(带有MIME_TYPE_DIR(MIME_TYPE_DIR)MIME类型)。每个目录代表顶部包含零个或多个文档的子树的更多文档和目录。

每个文档可以具有不同的功能,如下所述列_标志。例如,如果可以表示文档作为缩略图,您的提供商可以设置旗标_支架_指尖并实施openDocumentThumbnail(字符串、点、取消信号)返回那个缩略图。

提供者下的每个文档都由其列_文档_ID,返回后不得更改。A类响应时,单个文档可以包含在多个目录中queryChildDocuments(String,String[],String)例如提供者可能会在多个位置显示单个照片:在地理位置目录,以及日期目录。

所有文档都通过一个或多个“根”浮出水面。每个根表示用户可以导航的文档树的顶部。例如,根可以表示帐户或物理存储设备。类似文档,每个根都可以通过列_标志.

总结

[展开]
继承的常量
来自接口android内容。组件回调2
公共建筑商
文档提供者()
公共方法
空隙 附件信息(上下文上下文,提供商信息信息)
实现由父类提供。
捆绑 呼叫(字符串方法,字符串参数,捆绑额外费用)
实现是由父类提供的。
字符串 创建文档(字符串父文档ID,字符串mime类型,字符串显示名称)
创建新文档并返回其新生成的文档列_文档_ID.
最终的整数 删除(乌里uri,字符串选择,字符串[]选择参数)
实现由父类提供。
空隙 删除文档(字符串文档ID)
删除请求的文档。
字符串 获取文档类型(字符串文档ID)
返回请求文档的具体MIME类型。
最终的字符串 获取类型(乌里uri)
实现由父类提供。
最终的乌里 插入(乌里uri,内容值值)
实现由父类提供。
摘要地块文件描述符 打开文档(字符串文档ID,字符串模式,取消信号信号)
打开并返回请求的文档。
资产文件描述符 打开文档缩略图(字符串文档ID,size提示,取消信号信号)
打开并返回所请求文档的缩略图。
最终的地块文件描述符 打开文件(乌里uri,字符串模式)
实现由父类提供。
最终的地块文件描述符 打开文件(乌里uri,字符串模式,取消信号信号)
实现由父类提供。
最终的资产文件描述符 打开类型资产文件(乌里uri,字符串mimeTypeFilter,捆绑选项,取消信号信号)
实现是由父类提供的。
最终的资产文件描述符 打开类型资产文件(乌里uri,字符串mimeTypeFilter,捆绑选项)
实现由父类提供。
最终的光标 查询(乌里uri,字符串[]投影,字符串选择,字符串[]选择参数,字符串排序顺序)
实现由父类提供。
摘要光标 查询子文档(字符串父文档ID,字符串[]投影,字符串排序顺序)
返回请求目录中包含的子文档。
摘要光标 查询文档(字符串文档ID,字符串[]投影)
返回单个请求文档的元数据。
光标 查询最近文档(字符串根Id,字符串[]投影)
在请求的根目录下返回最近修改的文档。
摘要光标 queryRoots(查询根)(字符串[]投影)
返回当前提供的所有根。
光标 查询搜索文档(字符串rootId,字符串查询,字符串[]投影)
在请求的根目录。
最终的整数 更新(乌里uri,内容值值,字符串选择,字符串[]选择参数)
实现由父类提供。
[展开]
继承的方法
来自班级android内容。内容提供者
来自班级java.lang.Object(java.lang.对象)
来自接口android内容。组件回调
来自接口android内容。组件回调2

公共建筑商

公众的 文档提供者 ()

已在中添加API等级19

公共方法

公众空隙 附件信息 (上下文上下文,提供商信息信息)

已在中添加API等级19

实现由父类提供。

参数
上下文 运行此提供程序的上下文
信息 有关此内容提供商的注册信息

公众的捆绑 呼叫 (字符串方法,字符串参数,捆绑额外费用)

已在中添加API等级19

实现由父类提供。可以重写为提供附加功能,但子类必须总是调用超类。如果超类返回无效的,子类可以实现自定义行为。

参数
方法 要调用的方法名。框架不透明,但不应不透明无效的.
参数 provider定义的String参数。可能是无效的.
额外费用 provider-defined Bundle参数。可能是无效的.
退换商品
  • 提供者定义的返回值。可能是无效的,这也是不实现任何调用方法的提供程序的默认值。

公众的字符串 创建文档 (字符串父文档ID,字符串mime类型,字符串显示名称)

已在中添加API等级19

创建新文档并返回其新生成的文档列_文档_ID。您必须分配一个新的列_文档_ID代表文件,必须返回后不更改。

参数
父文档ID 用于创建新文档的父目录下。
mime类型 与新文档关联的具体MIME类型。如果不支持MIME类型,则提供程序必须引发。
显示名称 新文档的显示名称。提供者可以更改此名称以满足任何内部约束,例如名称冲突。

公众最终的整数 删除 (乌里uri,字符串选择,字符串[]选择参数)

已在中添加API等级19

实现由父类提供。默认投掷,以及无法重写。

参数
uri(用户界面) 要查询的完整URI,包括行ID(如果请求特定记录)。
选择 删除时应用于行的可选限制。
退换商品
  • 受影响的行数。

公众空隙 删除文档 (字符串文档ID)

已在中添加API等级19

删除请求的文档。返回时,任何URI权限都会授予请求的文档将被吊销。如果其他文件作为此调用的副作用而删除,例如目录中,实现者负责撤销这些权限。

参数
文档ID 要删除的文档。

公众的字符串 获取文档类型 (字符串文档ID)

已在中添加API等级19

返回请求文档的具体MIME类型。必须与值匹配属于列_MIME_TYPE用于此文档。默认值实现查询queryDocument(String,String[]),所以提供者可以选择将其作为优化覆盖。

公众最终的字符串 获取类型 (乌里uri)

已在中添加API等级19

实现由父类提供。无法被覆盖。

参数
uri(用户界面) 要查询的URI。
退换商品
  • MIME类型字符串,或无效的如果没有类型。

公众最终的乌里 插入 (乌里uri,内容值值)

已在中添加API等级19

实现由父类提供。默认投掷,以及无法重写。

参数
uri(用户界面) 插入请求的content://URI。这一定不是无效的.
要添加到数据库的一组列名称/值对。这一定不是无效的.
退换商品
  • 新插入项的URI。

公众摘要地块文件描述符 打开文档 (字符串文档ID,字符串模式,取消信号信号)

已在中添加API等级19

打开并返回请求的文档。

您的提供商应返回可靠的地块文件描述符检测远程调用者何时完成读取或写入文档。如果模式为独占,则可以返回管道或套接字对“r”或“w”,但像“rw”这样的复杂模式意味着磁盘上的正常文件支持搜索。

如果在下载内容时阻止,应定期检查已取消()以中止已放弃的打开请求。

参数
文档ID 要返回的文档。
模式 要打开的模式,例如“r”、“w”或“rw”。
信号 调用者用来表示请求是否应该取消。可能为空。

公众的资产文件描述符 打开文档缩略图 (字符串文档ID,size提示,取消信号信号)

已在中添加API等级19

打开并返回所请求文档的缩略图。

提供者应返回与提示大小非常匹配的缩略图,如果可能,尝试从本地缓存提供服务。提供者应该返回的图像不要超过提示大小的两倍。

如果您执行昂贵的操作来下载或生成缩略图,你应该定期检查已取消()中止放弃的缩略图请求。

参数
文档ID 要返回的文档。
size提示 最佳缩略图尺寸的提示。
信号 由调用方用来发出请求是否应该取消。可能为空。
另请参见

公众最终的地块文件描述符 打开文件 (乌里uri,字符串模式)

已在中添加API等级19

实现由父类提供。无法重写。

参数
uri(用户界面) 要打开其文件的URI。
模式 文件的访问模式。对于只读访问,可以是“r”,“rw”表示读写访问,“rwt”表示读写入访问截断任何现有文件。
退换商品
  • 返回可用于访问的新ParcelFileDescriptor文件。

公众最终的地块文件描述符 打开文件 (乌里uri,字符串模式,取消信号信号)

已在中添加API等级19

实现由父类提供。无法重写。

参数
uri(用户界面) 要打开其文件的URI。
模式 文件的访问模式。对于只读访问,可以是“r”,“w”表示只读访问,“rw”表示读写访问,或“rwt”用于截断任何现有的读写访问文件。
信号 取消正在进行的操作的信号,或无效的如果没有。例如,如果您正在下载从网络发送文件以服务“rw”模式请求,您应定期致电throwIf取消()检查是否客户端已取消请求并中止下载。
退换商品
  • 返回可用于访问的新ParcelFileDescriptor文件。

公众最终的资产文件描述符 打开类型资产文件 (乌里uri,字符串mimeTypeFilter,捆绑选项,取消信号信号)

已在中添加API等级19

实现由父类提供。无法被覆盖。

参数
uri(用户界面) 正在查询的内容提供程序中的数据。
mimeType过滤器 客户需要的数据类型。可能是模式,例如*\/*,如果调用方没有特定类型要求;在这种情况下,内容提供商将选择最好的与模式匹配的类型。
opts选项 来自客户端的其他选项。的定义这些特定于被调用的内容提供商。
信号 取消正在进行的操作的信号,或无效的如果没有。例如,如果您正在下载从网络发送文件以服务“rw”模式请求,您应定期致电throwIf取消()检查是否客户端已取消请求并中止下载。
退换商品
  • 返回客户端可以从中访问的新AssetFileDescriptor读取所需类型的数据。

公众最终的资产文件描述符 打开类型资产文件 (乌里uri,字符串mimeTypeFilter,捆绑选项)

已在中添加API等级19

实现由父类提供。无法重写。

参数
uri(用户界面) 正在查询的内容提供程序中的数据。
mimeType过滤器 客户需要的数据类型。可能是模式,例如*\/*,如果调用方没有特定类型要求;在这种情况下,内容提供商将选择最好的与模式匹配的类型。
opts选项 来自客户端的其他选项。的定义这些特定于被调用的内容提供程序。
退换商品
  • 返回一个新的AssetFileDescriptor,客户端可以从中读取所需类型的数据。

公众最终的光标 查询 (乌里uri,字符串[]投影,字符串选择,字符串[]选择参数,字符串排序顺序)

已在中添加API等级19

实现由父类提供。无法重写。

参数
uri(用户界面) 要查询的URI。这将是客户端发送的完整URI;如果客户端请求特定记录,URI将以记录号结尾实现应该解析并添加到WHERE或HAVING子句,指定该id值。
投影 要放入光标的列的列表。如果无效的包括所有列。
选择 筛选行时要应用的选择条件。如果无效的然后包括所有行。
选择参数 你可以包括在内吗?选择中的,将替换为selectionArgs中的值,以便它们出现在选择中。这些值将被绑定为字符串。
排序顺序 游标中的行应如何排序。如果无效的然后提供者可以自由定义排序顺序。
退换商品
  • 光标或无效的.

公众摘要光标 查询子文档 (字符串父文档ID,字符串[]投影,字符串排序顺序)

已在中添加API等级19

返回请求目录中包含的子文档。这个必须只返回直属子体,因为将有其他查询发出以递归地浏览树。

如果您的提供商是基于云的,并且您缓存或固定了一些数据本地,您可以立即返回本地数据,设置额外加载(_L)在光标上指示您仍在获取其他数据。然后,当网络数据可用,您可以发送更改通知以触发重新查询返回完整的内容。要返回带有附加的游标,您需要延伸和覆盖获取附加功能().

要支持更改通知,您必须setNotificationUri(ContentResolver,Uri)与相关的Uri,例如buildChildDocumentsUri(字符串,字符串).然后你可以打电话notifyChange(Uri,android.database.ContentObserver,boolean)用那个Uri发送更改通知。

参数
父文档ID 要返回其子项的目录。
投影 列表,共个文件合同。文件要放入的列光标。如果无效的所有受支持的列应为包括。
sortOrder(排序顺序) 如何对格式化为SQL的行进行排序订购依据子句(不包括ORDER BY本身)。经过无效的将使用默认的排序顺序可能是无序的。这种排序是一种提示,可以用于优先考虑如何从网络中获取数据,但UI可能始终强制执行特定的顺序。

公众摘要光标 查询文档 (字符串文档ID,字符串[]投影)

已在中添加API等级19

返回单个请求文档的元数据。你应该避免发出网络请求以保持此请求快速。

参数
文档ID 要返回的文档。
投影 列表,共个文件合同。文件要放入的列光标。如果无效的所有受支持的列都应包括。

公众的光标 查询最近文档 (字符串rootId,字符串[]投影)

已在中添加API等级19

在请求的根目录下返回最近修改的文档。这将只被称为广告根标志_支架_凹槽。返回的文件应为按排序列_最后_修改按降序排列,以及限制为仅返回64个最近修改的文档。

最近的文档不支持更改通知。

参数
投影 列表,共个文件合同。文件要放入的列光标。如果无效的所有受支持的列应为包括。
另请参见

公众摘要光标 queryRoots(查询根) (字符串[]投影)

已在中添加API等级19

返回当前提供的所有根。要向用户显示,必须定义至少一个根。你应该避免通过网络请求来保持快速请求。

每个根由中描述的元数据列定义文件合同。包括列_文档_ID指向一个目录表示要在该根下显示的文档树。

如果这组根发生更改,您必须调用notifyChange(Uri,android.database.ContentObserver,boolean)具有buildRootsUri(字符串)通知系统。

参数
投影 列表,共个文件合同。要放入光标的列。如果无效的应包括所有受支持的列。

公众的光标 查询搜索文档 (字符串rootId,字符串查询,字符串[]投影)

已在中添加API等级19

在请求的根目录。返回的文件应按相关性降序排序订单。文档与查询字符串的匹配方式是实现细节留给每个提供者,但建议在最少的列_显示_名称在中匹配对案件敏感的时尚。

只能退回文件;搜索中不支持目录结果。

如果您的提供商是基于云的,并且您缓存或固定了一些数据本地,您可以立即返回本地数据,设置额外装载在光标上指示您仍在获取其他数据。然后,当网络数据可用,您可以发送更改通知以触发重新查询返回完整的内容。

要支持更改通知,您必须setNotificationUri(ContentResolver,Uri)与相关的Uri,例如buildSearchDocumentsUri(字符串,字符串,字符串).然后你可以打电话notifyChange(Uri,android.database.ContentObserver,boolean)用那个Uri发送更改通知。

参数
根ID 要在其下搜索的根。
查询 用于匹配文档的字符串。
投影 列表,共个文件合同。文件要放入的列光标。如果无效的所有受支持的列应为包括。

公众最终的整数 更新 (乌里uri,内容值值,字符串选择,字符串[]选择Args)

已在中添加API等级19

实现由父类提供。默认投掷,以及无法重写。

参数
uri(用户界面) 要查询的URI。如果出现以下情况,则可能具有记录ID是特定记录的更新请求。
要在数据库中更新的一组列名称/值对。这一定不是无效的.
选择 用于匹配要更新的行的可选筛选器。
退换商品
  • 受影响的行数。