HarmonyOS鸿蒙Next之Ability04——理解HarmonyOS Data Ability

HarmonyOS鸿蒙Next之Ability04——理解HarmonyOS Data Ability 使用Data模板的Ability,也简称Data,主要职责是管理其自身应用和其他应用存储数据的访问,并提供与其他应用共享数据的方法。

Data既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。

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

5.9.1 URI

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

URI格式

其中,

  • scheme:协议方案名,固定为"dataability",代表Data Ability所使用的协议类型。
  • authority:设备ID。如果为跨设备场景,则为目标设备的ID;如果为本地设备场景,则不需要填写。
  • path:资源的路径信息,代表特定资源的位置信息。
  • query:查询参数。
  • fragment:可以用于指示要访问的子资源。

以下是具体的URI示例:

// 跨设备场景:
dataability://device_id/com.waylau.hmos.dataabilityhelperaccessfile.dataability.persondata/person/10

// 本地设备:
dataability:///com.waylau.hmos.dataabilityhelperaccessfile.dataability.persondata/person/10

5.9.2 访问Data

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

1. 声明使用权限

如果待访问的Data声明了访问需要权限,则访问此Data需要在配置文件中声明需要此权限。声明请参考权限申请字段说明。

"reqPermissions": [
    {
        "name": "com.waylau.hmos.dataabilityhelperaccessfile.DataAbility.DATA"
    }
]
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来访问文件和数据库。


更多关于HarmonyOS鸿蒙Next之Ability04——理解HarmonyOS Data Ability的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

这个只是FA模型可用还是Stage模型也可以,官方看在FA模型下面

更多关于HarmonyOS鸿蒙Next之Ability04——理解HarmonyOS Data Ability的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这样直接摘抄官方文档有意义吗?

有,介绍概念性的文字自然是官方文档最为权威。

但这个不是重点,重点看我后续的系列文章。

感谢关注

HarmonyOS中的Data Ability是一种特殊的能力,用于管理和访问应用程序的数据。它允许应用程序通过统一的接口访问本地或远程数据源,如数据库、文件系统或网络服务。Data Ability通过提供标准化的数据操作接口(如增删改查),简化了数据管理流程,并支持跨应用数据共享。开发者可以通过定义Data Ability来实现数据的高效管理和安全访问,确保数据的一致性和完整性。

回到顶部