购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.9 Data Ability

使用Data模板的Ability也简称Data,主要职责是管理其自身应用和其他应用存储数据的访问,并提供与其他应用共享数据的方法。Data既可用于同一设备不同应用的数据共享,也支持跨设备不同应用的数据共享。

数据的存储方式多种多样,可以是传统意义上的数据库系统,也可以是本地磁盘上的文件。Data对外提供对数据的增、删、改、查,以及打开文件等接口,这些接口的具体实现由开发者提供。

5.9.1 URI

Data的提供方和使用方都通过URI(Uniform Resource Identifier,统一资源定位符)来标识一个具体的数据,例如数据库中的某个表或磁盘上的某个文件。HarmonyOS的URI是基于URI通用标准的,具体格式如图5-19所示。

图5-19 URI格式

其中:

· scheme:协议方案名,固定为dataability,代表Data Ability所使用的协议类型。

· authority:设备ID。如果为跨设备场景,则为目标设备的ID;如果为本地设备场景,则不需要填写。

· path:资源的路径信息,代表特定资源的位置信息。

· query:查询参数。

· fragment:用于指示要访问的子资源。

以下是具体的URI示例:

跨设备场景:

    dataability://device_id/com.waylau.hmos.dataabilityhelperaccessfile.dataab
ility.persondata/person/10

本地设备:

    dataability:///com.waylau.hmos.dataabilityhelperaccessfile.dataability.per
sondata/person/10

注:本地设备的device_id字段为空,因此在dataability:后面有3个“/”。

5.9.2 访问Data

可以通过DataAbilityHelper类来访问当前应用或其他应用提供的共享数据。DataAbilityHelper作为客户端,与提供方的Data进行通信。Data接收到请求后,执行相应的处理,并返回结果。DataAbilityHelper提供了一系列与Data Ability对应的方法。

下面介绍DataAbilityHelper具体的使用步骤。

1.声明使用权限

如果待访问的Data声明了访问需要的权限,则访问此Data需要在配置文件中声明需要此权限,示例如下:

如果访问的数据是文件,则还需要添加访问存储读、写的权限:ohos.permission.READ_USER_STORAGE和ohos.permission.WRITE_USER_STORAGE。

2.创建DataAbilityHelper

DataAbilityHelper为开发者提供了creator()方法来创建DataAbilityHelper实例。该方法为静态方法,有多个重载。常见的方法是通过传入一个context对象来创建DataAbilityHelper对象。

以下为获取helper对象的示例:

   DataAbilityHelper helper = DataAbilityHelper.creator(this);
3.访问Data Ability

DataAbilityHelper为开发者提供了一系列的接口来访问不同类型的数据,比如文件、数据库等。

· 访问文件:DataAbilityHelper为开发者提供了FileDescriptor openFile(Uri uri, String mode)方法来操作文件。此方法需要传入两个参数,其中uri用来确定目标资源路径,mode用来指定打开文件的方式,可选方式包含r(读)、w(写)、rw(读写)、wt(覆盖写)、wa(追加写)、rwt(覆盖写且可读)。该方法返回一个目标文件的FD(文件描述符),把文件描述符封装成流,开发者就可以对文件流进行自定义处理。

· 访问数据库:DataAbilityHelper为开发者提供了增、删、改、查以及批量处理等方法来操作数据库。

在接下来的章节将会详细介绍如何使用DataAbilityHelper来访问文件和数据库。 wbULnW16AGp+R2mnBvEMejdzg4tNr79P3pDeSVsWGC/zPAjXSycrEj6I8sCzekWL

点击中间区域
呼出菜单
上一章
目录
下一章
×