鸿蒙OS开发文档 鸿蒙OS Ability DataAbilityHelper

2024-02-25 开发教程 鸿蒙OS开发文档 匿名 1

帮助应用程序访问数据。

DataAbilityHelper 是用于数据操作的帮助程序类。它使用 IDataAbilityObserver 注册一个观察器以监视数据。您可以在不指定 Uri的情况下调用 creator(ohos.app.Context)创建一个 DataAbilityHelper实例,或调用creator(ohos.app.Context,ohos.utils.net.Uri,boolean)创建一个具有给定 Uri的实例。

也可以看看:

IDataAbilityObserver, Context, Uri

方法总结

修饰符和类型方法描述
整型batchInsert(Uri uri,ValuesBucket []值)将多个数据记录插入数据库。
PacMapcall(Uri uri,String 方法,String arg,PacMap extras)调用“数据”功能定义的方法。
静态DataAbilityHelpercreator(Context context)创建一个 DataAbilityHelper 实例,而不基于给定的 Context 指定 Uri。
静态DataAbilityHelpercreator(Context context,Uri uri)根据给定的 Context 创建一个具有指定 Uri 的 DataAbilityHelper 实例。
静态DataAbilityHelpercreator(Context context,Uri uri,boolean tryBind)创建一个 DataAbilityHelper 实例。
整型delete(Uri uri,DataAbilityPredicates 谓词)从数据库中删除一个或多个数据记录。
UridenormalizeUri(Uri uri)将 normalizeUri(ohos.utils.net.Uri)生成的给定归一化 uri 转为非归一化的uri 。
DataAbilityResult [] executeBatch(Uri uri,ArrayList < DataAbilityOperation >操作)在数据库上执行批处理操作。
StringgetFileTypes(Uri uri,String mimeTypeFilter)获取支持的文件的 MIME 类型。
StringgetType(Uri uri)获取给定 URI 指定的日期的 MIME 类型。
整型update(Uri uri,ValuesBucket值)将单个数据记录插入数据库。
UrinormalizeUri(Uri uri)将引用数据能力的给定 uri 转换为规范化的 Uri。
voidnotifyChange(Uri uri)通知注册观察者 Uri指定的数据资源已更改。
FileDescriptoropenFile(Uri uri,String模式)在指定的远程路径中打开文件。
RawFileDescriptoropenRawFile(Uri uri,String模式)这就像 openFile(ohos.utils.net.Uri,java.lang.String)一样,打开一个文件,该文件需要能够返回文件的子部分,通常是其 .hap 中的资产。
ResultSetquery(Uri uri,String []列,DataAbilityPredicates谓词)查询数据库中的数据。
voidregisterObserver(Uri uri,IDataAbilityObserver dataObserver)注册观察者以观察给定 Uri 指定的数据。
布尔值release()释放数据能力的客户资源。
voidunregisterObserver(Uri uri,IDataAbilityObserver dataObserver)注销用于监视给定 Uri 指定的数据的观察者。
整型update(Uri uri,ValuesBucket 值,DataAbilityPredicates 谓词)更新数据库中的数据记录。
从类 java.lang 继承的方法。object
clone,equals,finalize,getClass,hashCode,notify,notifyAll,toString,wait,wait,wait

方法细节

创作者

公共静态 DataAbilityHelper creator(Contextcontext)

创建一个 DataAbilityHelper 实例,而不基于给定的 Context 指定 Uri。

参数:

参数名称参数说明
语境指示 HarmonyOS 上的 Context 对象。

返回值:

返回创建的 DataAbilityHelper 实例,其中未指定 Uri。

创作者

公共静态 DataAbilityHelper creator(Context context,Uri uri)

根据给定的 Context 创建一个具有指定 Uri 的 DataAbilityHelper 实例 。

参数:

参数名称参数说明
语境指示 HarmonyOS 上的 Context 对象。
乌里表示要操作的数据库表或磁盘文件。

返回值:

返回具有指定 Uri 的创建的 DataAbilityHelper 实例。

创作者

公共静态 DataAbilityHelper creator(Contextcontext,Uri uri,布尔 tryBind)

创建一个 DataAbilityHelper 实例。

您可以使用此方法指定要操作的数据的 Uri,并设置使用数据模板的能力(简称 Data 能力)与 DataAbilityHelper 实例中关联的客户端进程之间的绑定关系。

参数:

参数名称参数说明
语境指示 HarmonyOS 上的 Context 对象。
uri指示要操作的数据库表。
tryBind指定相应数据能力流程的退出是否导致客户流程的退出。

返回值:

返回创建的 DataAbilityHelper 实例。

释放

公共布尔发布()

释放数据能力的客户资源。

数据操作完成后,应调用此方法释放客户端资源。

返回值:

如果资源已成功释放,则返回 true;否则,返回 false。否则返回 false。

注册观察者

公共无效 registerObserver(Uri uri,IDataAbilityObserver dataObserver)Throws IllegalArgumentException

注册观察者以观察给定 Uri 指定的数据 。

参数:

参数名称参数说明
uri指示要操作的数据的路径。
数据观察者指示 IDataAbilityObserver 对象。

Throws:

Throws名称Throws说明
IllegalArgumentException如果参数值无效,则Throws此异常。
NullPointerException如果 uri 为 null,则Throws此异常。

通知变更

公共无效 notifyChange((Uri uri)引发 IllegalArgumentException

通知注册观察者 Uri 指定的数据资源已更改 。

参数:

参数名称参数说明
uri指示要操作的数据的路径。

Throws:

Throws名称Throws说明
IllegalArgumentException如果参数值无效,则Throws此异常。
NullPointerException如果 uri 为 null,则Throws此异常。

注销观察者

公共无效 unregisterObserver(Uri uri,IDataAbilityObserver dataObserver)Throws IllegalArgumentException

注销用于监视给定 Uri 指定的数据的观察者 。

参数:

参数名称参数说明
uri指示要操作的数据的路径。
数据观察者指示 IDataAbilityObserver 对象。

Throws:

Throws名称Throws说明
IllegalArgumentException如果参数值无效,则Throws此异常。
NullPointerException如果 uri 为 null,则Throws此异常。

public int insert(Uri uri,ValuesBucket value)Throws DataAbilityRemoteException

将单个数据记录插入数据库。

参数:

参数名称参数说明
uri指示要操作的数据的路径。
指示要插入的数据记录。如果此参数为 null,将插入空白行。

返回值:

返回插入的数据记录的索引。

Throws:

Throws名称Throws说明
DataAbilityRemoteException如果发生远程进程异常,则Throws此异常。
IllegalStateException如果 dataAbility 不存在,则Throws此异常。
NullPointerException如果 uri 为 null,则Throws此异常。

batchInsert

public int batchInsert(Uri uri,ValuesBucket [] values)Throws DataAbilityRemoteException

将多个数据记录插入数据库。

参数:

参数名称参数说明
uri指示要操作的数据的路径。
价值观指示要插入的数据记录。

返回值:

返回插入的数据记录数。

Throws:

Throws名称Throws说明
DataAbilityRemoteException如果发生远程进程异常,则Throws此异常。
IllegalStateException如果 dataAbility 不存在,则Throws此异常。
IllegalArgumentException如果参数值无效,则Throws此异常。
NullPointerException如果 uri 为 null,则Throws此异常。

删除

public int delete(Uri uri,DataAbilityPredicates 谓词)引发 DataAbilityRemoteException

从数据库中删除一个或多个数据记录。

参数:

参数名称参数说明
乌里指示要操作的数据的路径。
谓词表示过滤条件。当此参数为 null 时,您应该定义处理逻辑。

返回值:

返回已删除的数据记录数。

Throws:

Throws名称Throws说明
DataAbilityRemoteException如果发生远程进程异常,则Throws此异常。
IllegalStateException如果 dataAbility 不存在,则Throws此异常。
NullPointerException如果 uri 为 null,则Throws此异常。

更新

public int update(Uri uri,ValuesBucket value,DataAbilityPredicates 谓词)Throws DataAbilityRemoteException

更新数据库中的数据记录。

参数:

参数名称参数说明
uri指示要更新的数据路径。
指示要更新的数据。此参数可以为空。
谓词表示过滤条件。当此参数为null时,您应该定义处理逻辑。

返回值:

返回更新的数据记录数。

Throws:

Throws名称Throws说明
DataAbilityRemoteException如果发生远程进程异常,则Throws此异常。
IllegalStateException如果 dataAbility 不存在,则Throws此异常。
NullPointerException如果 uri 为 null,则Throws此异常。

询问

公共 ResultSet 查询(Uri uri,String [ ]列,DataAbilityPredicates 谓词)Throws DataAbilityRemoteException

查询数据库中的数据。

参数:

参数名称参数说明
uri指示要查询的数据路径。
指示要查询的列。如果此参数为 null,则查询所有列。
谓词表示过滤条件。当此参数为 null 时,您应该定义处理逻辑。

返回值:

返回查询结果。

Throws:

Throws名称Throws说明
DataAbilityRemoteException如果发生远程进程异常,则Throws此异常。
IllegalStateException如果 dataAbility 不存在,则Throws此异常。
NullPointerException如果 uri 为 null,则Throws此异常。

执行批处理

public DataAbilityResult [] executeBatch(Uri uri,ArrayList < DataAbilityOperation >操作)ThrowsDataAbilityRemoteException,OperationExecuteException

在数据库上执行批处理操作。

参数:

参数名称参数说明
uri指示要操作的数据路径。
运作指示数据库上数据库操作的列表。

返回值:

以数组形式返回每个操作的结果。

Throws:

Throws名称Throws说明
DataAbilityRemoteException如果发生远程进程异常,则Throws此异常。
OperationExecuteException如果发生操作异常,则Throws此异常。
IllegalStateException如果 dataAbility 不存在,则Throws此异常。
IllegalArgumentException如果参数值无效,则Throws此异常。
NullPointerException如果 uri 为 null,则Throws此异常。

打开文件

public FileDescriptor openFile(Uri uri,String模式)Throws DataAbilityRemoteException,FileNotFoundException

在指定的远程路径中打开文件。

参数:

参数名称参数说明
uri指示要打开的文件的路径。
模式表示文件打开模式,对于只读访问可以为“ r”,对于只读访问可以为“ w”(擦除文件中当前的任何数据),对于截断任何现有文件的写访问可以为“ wt”,“ “ wa”表示只写访问权限,以追加到任何现有数据;“ rw”表示对任何现有数据的读写访问;“ rwt”表示对截断任何现有文件的读写访问。

返回值:

返回文件描述符。

Throws:

Throws名称Throws说明
FileNotFoundException如果找不到该文件,则Throws此异常。
DataAbilityRemoteException如果发生远程进程异常,则Throws此异常。
IllegalStateException如果 dataAbility 不存在,则Throws此异常。
NullPointerException如果 uri 或 mode 为 null,则Throws此异常。

打开原始文件

public RawFileDescriptor openRawFile(Uri uri,String模式)ThrowsDataAbilityRemoteException,FileNotFoundException

这就像 openFile(ohos.utils.net.Uri,java.lang.String)一样,打开一个文件,该文件需要能够返回文件的子部分,通常是其 .hap 中的资产。

参数:

参数名称参数说明
uri指示要打开的文件的路径。
模式表示文件打开模式,对于只读访问可以为“ r”,对于只读访问可以为“ w”(擦除文件中当前的任何数据),对于截断任何现有文件的写访问可以为“ wt”,“ “ wa”表示只写访问权限,以追加到任何现有数据;“ rw”表示对任何现有数据的读写访问;“ rwt”表示对截断任何现有文件的读写访问。

返回值:

返回包含文件描述符的 RawFileDescriptor 对象。

Throws:

Throws名称Throws说明
FileNotFoundException如果找不到该文件,则Throws此异常。
DataAbilityRemoteException如果发生远程进程异常,则Throws此异常。
IllegalStateException如果 dataAbility 不存在,则Throws此异常。
NullPointerException如果 uri 或 mode 为 null,则Throws此异常。

获取文件类型

public String [] getFileTypes((Uri uri,String mimeTypeFilter)Throws DataAbilityRemoteException

获取支持的文件的MIME类型。

参数:

参数名称参数说明
uri指示要获取的文件的路径。
mimeTypeFilter表示要获取的文件的 MIME 类型。此参数不能为空。<br />1.“ / ”:获得数据功能支持的所有类型。<br />2.“ image / ”:获取主要类型为任何子类型的图像的文件。<br />3.“ / jpg”:获取其子类型为任何主要类型的 JPG 的文件。

返回值:

返回匹配的 MIME 类型。如果没有匹配项,则返回 null。

Throws:

Throws名称Throws说明
DataAbilityRemoteException如果发生远程进程异常,则Throws此异常。
NullPointerException如果 uri 或 mimeTypeFilter 为 null,则Throws此异常。

呼叫

公共 PacMap 调用(Uri uri,String方法,String arg,PacMap 附加功能)Throws DataAbilityRemoteException

调用“数据”功能定义的方法。

参数:

参数名称参数说明
uri指示数据处理能力。
方法指示方法名称。
arg指示字符串类型的参数。
extras表示 PacMap 类型的参数。

返回值:

返回被调用方法返回的值。

Throws:

Throws名称Throws说明
DataAbilityRemoteException如果发生远程进程异常,则Throws此异常。
NullPointerException如果 uri 或 method 为 null,则Throws此异常。

获取类型

public String getType((Uri uri)Throws DataAbilityRemoteException

获取给定URI指定的日期的MIME类型。

参数:

参数名称参数说明
uri指示要操作的数据的路径。

返回值:

返回与 uri 指定的数据匹配的 MIME 类型。

Throws:

Throws名称Throws说明
DataAbilityRemoteException如果发生远程进程异常,则Throws此异常。
NullPointerException如果 uri 为 null,则Throws此异常。

规范化

公共Uri normalizeUri(Uri uri)引发 DataAbilityRemoteException

将引用数据能力的给定 uri 转换为规范化的 Uri。标准化的 URI 可以在设备之间使用,持久化,备份和还原。

要将标准化的URI从另一个环境转移到当前环境,您应该再次调用此方法以对当前环境的 URI 进行重新标准化,或调用denormalizeUri(ohos.utils.net.Uri)将其转换为可以仅在当前环境中使用。

参数:

参数名称参数说明
uri指示要规范化的 Uri 对象。

返回值:

如果数据功能支持 URI 标准化,则返回标准化的 Uri 对象;否则返回 null。

Throws:

Throws名称Throws说明
DataAbilityRemoteException如果远程进程退出,则Throws此异常。
NullPointerException如果 uri 为 null,则Throws此异常。

也可以看看:

denormalizeUri(ohos.utils.net.Uri)

非规范化

公共 Uri denormalizeUri(Uri uri)引发 DataAbilityRemoteException

将 normalizeUri(ohos.utils.net.Uri)生成的给定归一化 uri 转换为非归一化的 uri 。

参数:

参数名称参数说明
uri指示要规范化的 Uri 对象。

返回值:

如果非规范化成功,则返回非规范化的 Uri 对象;如果没有任何关系,则返回传递给此方法的原始 Uri;如果在当前环境中找不到由规范化 Uri 标识的数据,则返回 null。

Throws:

Throws 名称Throws 说明
DataAbilityRemoteException如果远程进程退出,则Throws此异常。
NullPointerException如果 uri 为 null,则Throws此异常。

也可以看看:

normalizeUri(ohos.utils.net.Uri)