OpenHarmony 系统能力 SystemCapability 使用指南

OpenHarmony实战开发-系统能力SystemCapability使用指南 SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性,如蓝牙,WIFI,NFC,摄像头等,都是系统能力之一。每个系统能力对应多个API,随着目标设备是否支持该系统能力共同存在或消失,也会随着DevEco Studio一起提供给开发者做联想。开发者可以在SysCap列表中查询OpenHarmony的能力集。 阅读详情
AI摘要

本文详细介绍了OpenHarmony中的SysCap系统能力管理和API关联,包括支持和要求能力集、设备与能力集的关系,以及开发者如何判断API在不同设备上的可用性,确保跨设备应用的兼容性。,

一、概述

1、系统能力与 API

SysCap,全称 SystemCapability,即系统能力,指操作系统中每一个相对独立的特性,如蓝牙,WIFI,NFC,摄像头等,都是系统能力之一。每个系统能力对应多个 API,随着目标设备是否支持该系统能力共同存在或消失,也会随着 DevEco Studio 一起提供给开发者做联想。

开发者可以在 SysCap 列表中查询 OpenHarmony 的能力集。

2、支持能力集,联想能力集与要求能力集

支持能力集,联想能力集与要求能力集都是系统能力的集合。支持能力集描述的是设备能力,要求能力集描述的是应用能力。若应用 A 的要求能力集是设备 N 的支持能力集的子集,则应用 A 可分发到设备 N 上安装运行,否则不能分发。联想能力集是该应用开发时,DevEco Studio 可联想的 API 所在的系统能力集合。

3、设备与支持能力集

每个设备根据其硬件能力,对应不同的支持能力集。SDK 将设备分为两组,典型设备和自定义设备,典型设备的支持能力集由 OpenHarmony 来定义,自定义设备由设备厂商给出。

4、设备与 SDK 能力的对应

SDK 向 DevEco Studio 提供全量 API,DevEco Studio 识别开发者项目中选择的设备形态,找到该设备的支持能力集,筛选支持能力集包含的 API 并提供 API 联想。

二、SysCap 开发指导

1、PCID 获取

PCID,全称 Product Compatibility ID,包含当前设备支持的 SysCap 信息。获取所有设备 PCID 的认证中心正在建设中,目前需要找对应设备的厂商获取该设备的 PCID。

2、PCID 导入

DevEco Studio 工程支持 PCID 的导入。导入的 PCID 文件解码后输出的 SysCap 会被写入 syscap.json 文件中。

在工程目录右键后选择 Import Product Compatibility ID,即可上传 PCID 文件并导入至 syscap.json 中。

3、配置联想能力集和要求能力集

DevEco Studio 会根据创建的工程所支持的设置自动配置联想能力集和要求能力集,开发者也可以自行修改。

对于联想能力集,开发者通过添加更多的系统能力,在 DevEco Studio 中可以使用更多的 API,但要注意这些 API 可能在设备上不支持,使用前需要判断。

对于要求能力集,开发者修改时要十分慎重,修改不当会导致应用无法分发到目标设备上。

// syscap.json{	"devices": {		"general": [            // 每一个典型设备对应一个syscap支持能力集,可配置多个典型设备			"default",			"car"		],		"custom": [             // 厂家自定义设备			{				"某自定义设备": [					"SystemCapability.Communication.SoftBus.Core"				]			}		]	},	"development": {             // addedSysCaps内的sycap集合与devices中配置的各设备支持的syscap集合的并集共同构成联想能力集		"addedSysCaps": [			"SystemCapability.Location.Location.Lite"		]	},	"production": {              // 用于生成rpcid,慎重添加,可能导致应用无法分发到目标设备上		"addedSysCaps": [],      // devices中配置的各设备支持的syscap集合的交集,添加addedSysCaps集合再除去removedSysCaps集合,共同构成要求能力集		"removedSysCaps": []     // 当该要求能力集为某设备的子集时,应用才可被分发到该设备上	}}

4、单设备应用开发

默认应用的联想能力集,要求系统能力集和设备的支持系统能力集相等,开发者修改要求能力集需要慎重。

5、跨设备应用开发

默认应用的联想能力集是多个设备支持能力集的并集,要求能力集则是交集。

6、判断 API 是否可以使用

方法 1:OpenHarmony 定义了 API canIUse 帮助开发者来判断该设备是否支持某个特定的 syscap。

if (canIUse("SystemCapability.ArkUI.ArkUI.Full")) {	   console.log("该设备支持SystemCapability.ArkUI.ArkUI.Full");} else {    console.log("该设备不支持SystemCapability.ArkUI.ArkUI.Full");}

方法 2:开发者可通过 import 的方式将模块导入,若当前设备不支持该模块,import 的结果为 undefined,开发者在使用其 API 时,需要判断其是否存在。

import geolocation from '@ohos.geolocation';
if (geolocation) {    geolocation.getCurrentLocation((location) => { 	   console.log(location.latitude, location.longitude);    });} else {    console.log('该设备不支持位置信息');}

除此之外,开发者可以通过 API 参考文档查询 API 接口所属的 SysCap。

7、不同设备相同能力的差异检查

即使是相同的系统能力,在不同的设备下,也会有能力的差异。比如同是摄像头的能力,平板设备优于智能穿戴设备。

import userAuth from '@ohos.userIAM.userAuth';
const authenticator = userAuth.getAuthenticator();const result = authenticator.checkAbility('FACE_ONLY', 'S1');
if (result == authenticator.CheckAvailabilityResult.AUTH_NOT_SUPPORT) {	console.log('该设备不支持人脸识别');}//强行调用不支持的 API 会返回错误信息,但不会出现语法错误。authenticator.execute('FACE_ONLY', 'S1', (err, result) => {	if (err) {		console.log(err.message);		return;	}})

8、设备间的 SysCap 差异如何产生的

设备的 SysCap 因产品解决方案厂商拼装的部件组合不同而不同,整体流程如下图:

  1. 一套 OpenHarmony 源码由可选和必选部件集组成,不同的部件为对外体现的系统能力不同,即部件与 SysCap 之间映射关系。

  2. 发布归一化的 SDK,API 与 SysCap 之间存在映射关系。

  3. 产品解决方案厂商按硬件能力和产品诉求,可按需拼装部件。

  4. 产品配置的部件可以是 OpenHarmony 的部件,也可以是三方开发的私有部件,由于部件与 SysCap 间存在映射,所有拼装后即可得到该产品的 SysCap 集合。

  5. SysCap 集编码生成 PCID (Product Compatibility ID, 产品兼容性标识),应用开发者可将 PCID 导入 IDE 解码成 SysCap,开发时对设备的 SysCap 差异做兼容性处理。

  6. 部署到设备上的系统参数中包含了 SysCap 集,系统提供了 native 的接口和应用接口,可供系统内的部件和应用查询某个 SysCap 是否存在。

  7. 应用开发过程中,应用必要的 SysCap 将被编码成 RPCID(Required Product Compatibility ID),并写入应用安装包中。应用安装时,包管理器将解码 RPCID 得到应用需要的 SysCap,与设备当前具备的 SysCap 比较,若应用要求的 SysCap 都被满足,则安装成功。

  8. 应用运行时,可通过 canIUse 接口查询设备的 SysCap,保证在不同设备上的兼容性。

鸿蒙5.0【在OpenHarmony上使用SeetaFace2人脸识别库】 相信大部分同学们都已了解或接触过OpenAtom OpenHarmony(以下简称“OpenHarmony”)了,但你一定没在OpenHarmony上实现过人脸识别功能,跟着本文带你快速在OpenHarmony标准设备上基于SeetaFace2和OpenCV实现人脸识别。 阅读详情

相关推荐

带你玩转OpenHarmony AI:基于Seetaface2的人脸识别

随着时代的进步,全民刷脸已经成为一种新型的生活方式,这也是全球科技进步的又一阶梯,人脸识别技术已经成为一种大趋势,无论在智慧出行、智能家居、智慧办公等场景均有较广泛的应用场景,本文介绍了基于SeetaFace2人脸识别引擎在OpenAtom OpenHarmony(以下简称“OpenHarmony”)上实现人脸识别的AI能力。

maniuT的博客 1073

(建议收藏)OpenHarmony系统能力SystemCapability列表

SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性。 开发者使用某个接口进行开发前,建议先阅读,了解Syscap的定义和使用指导。再结合下文中的表格判断具体能力集是否支持某个设备,提高开发效率。 说明: Default代表了一个功能比较全面的OpenHarmony设备,具有大部分的通用能力。在尚未明确设备具体能力集的情况下,可使用Default类型进行开发 SystemCapability.ArkUI.ArkUI.Full ArKUI标准系

OpenHarmony_dev的博客 1067

OpenHarmony实战——OpenHarmony系统能力SystemCapability

SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性,如蓝牙,WIFI,NFC,摄像头等,都是系统能力之一。每个系统能力对应多个API,随着目标设备是否支持该系统能力共同存在或消失,也会随着DevEco Studio一起提供给开发者做联想。开发者可以在 SysCap列表 中查询OpenHarmony的能力集。

xianglizaibie的博客 1169

如何在OpenHarmony上使用SeetaFace2人脸识别库?

相信大部分同学们都已了解或接触过OpenAtom OpenHarmony(以下简称“OpenHarmony”)了,但你一定没在OpenHarmony上实现过人脸识别功能,跟着本文带你快速在OpenHarmony标准设备上基于SeetaFace2和OpenCV实现人脸识别。本项目实现了导入人脸模型、人脸框选和人脸识别三大功能,操作流程如下:1. 录入页面点击右下角按钮,跳转拍摄页面进行拍照;2. 选择一张或多张人脸作为训练模型,并设置对应的名字;3. 选择一张未录入的人脸图片,点击框选按钮实现人脸图片框选功能

OpenHarmony_dev的博客 2834

【鸿蒙OH实战开发】OpenHarmony系统能力SystemCapability

SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性,如蓝牙,WIFI,NFC,摄像头等,都是系统能力之一。每个系统能力对应多个API,随着目标设备是否支持该系统能力共同存在或消失,也会随着DevEco Studio一起提供给开发者做联想。开发者可以在SysCap列表中查询OpenHarmony的能力集。

huchenghe2的博客 979

OpenHarmony 系统能力 SystemCapability 配置与实战解析

本文深入解析OpenHarmony系统能力SystemCapability的配置与实战应用,涵盖PCID文件获取、syscap.json配置及设备兼容性处理技巧。通过实际案例展示如何在不同设备上实现功能差异化,解决常见安装报错和版本兼容问题,助力开发者高效构建跨设备应用。

weixin_29232121的博客 361

OpenHarmony系统能力SystemCapability

SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性,如蓝牙,WIFI,NFC,摄像头等,都是系统能力之一。每个系统能力对应多个API,随着目标设备是否支持该系统能力共同存在或消失,也会随着DevEco Studio一起提供给开发者做联想。开发者可以在SysCap列表中查询OpenHarmony的能力集。

adaedwa187545的博客 932

鸿蒙5.0【OpenHarmony】系统能力SystemCapability使用指南

SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性,如蓝牙,WIFI,NFC,摄像头等,都是系统能力之一。每个系统能力对应多个API,随着目标设备是否支持该系统能力共同存在或消失,也会随着DevEco Studio一起提供给开发者做联想。

2401_82772199的博客 1612

openharmony 判断工程是否具备某系统能力SystemCapability

方法2:开发者可通过import的方式将模块导入,若当前设备不支持该模块,import的结果为undefined,开发者在使用API时,需要判断其是否存在。方法1:HarmonyOS定义了API canIUse帮助开发者来判断该设备是否支持某个特定的SysCap。

樾儿的专栏 534

OpenHarmony应用上架前必查:你的syscap.json配置对了吗?手把手教你避开分发陷阱

本文详细解析了OpenHarmony应用上架前syscap.json配置的关键要点,帮助开发者正确设置SystemCapability以避免分发陷阱。通过实例演示和DevEco Studio操作指南,确保应用能精准匹配目标设备能力集,提升上架成功率。

Dendy之Java小屋 446

OpenHarmony开发说明【坚果派】

API参考主要用于开发者查阅应用开发相关的各类API说明。为了方便开发者使用API文档,对文档描述中的常用字段进行说明。

坚果的博客 1万+

HarmonyOS/OpenHarmony应用开发-ArkTSAPI系统能力SystemCapability列表

SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性。 开发者使用某个接口进行开发前,建议先阅读系统能力使用说明,了解Syscap的定义和使用指导。

weixin_69135651的博客 2342

别再只用CANape测数据了!手把手教你用ASAP2 Studio编辑A2L文件(附MAP文件更新避坑指南)

本文深入探讨ASAP2 Studio在ECU开发中的高阶应用,特别是如何利用其编辑A2L文件并同步更新MAP文件,提升测量标定效率。文章详细解析了ASAP2 Studio的双向同步能力、MAP文件更新全流程及变量管理技巧,帮助工程师避免常见错误,优化工作流程。

weixin_26833939的博客 506

OpenHarmony部件化编译最佳实践

本文介绍了OpenHarmony部件化编译的最佳实践方法,主要包括五个方面:1) 通过feature配置实现部件功能裁剪,详细说明了产品配置feature和部件开发使用feature的方法;2) 判断当前产品是否包含依赖部件的方式;3) inner_kits模块的裁剪处理策略;4) napi模块的统一裁剪方法;5) 部件与产品的系统能力配置方法。文章提供了详细的配置示例和使用说明,帮助开发者实现OpenHarmony部件的差异化编译和功能裁剪,支持不同形态产品的组装需求。

ccf19881030的专栏 1172

Android开发者必看:火山引擎API验签实战,5分钟搞定年龄变化接口调用

本文为Android开发者提供火山引擎API验签实战指南,重点解析HMAC-SHA256签名算法实现,并以年龄变化接口为例展示完整调用流程。通过OkHttp封装和性能优化建议,帮助开发者5分钟内快速集成火山引擎人像处理功能,解决API调用中的签名验证、参数编码等核心问题。

weixin_30342209的博客 316

Quartus原理图设计入门:从半加器到4位全加器的保姆级教程

本文提供Quartus原理图设计入门教程,详细讲解从半加器到4位全加器的实现过程。通过原理图输入法,逐步构建数字电路设计基础模块,涵盖环境搭建、逻辑设计、层次化实现及功能验证等关键步骤,帮助FPGA初学者快速掌握Quartus工具链和加法器设计方法。

weixin_29291185的博客 464

TranslucentTB 完整指南:3 分钟让 Windows 任务栏透明,与壁纸无缝融为一体

深夜加班到一半,你终于把攒了许久的壁纸换上了桌面。画面很美,可屏幕底部那条任务栏还是倔强的黑块,硬生生把壁纸拦腰截断。翻遍系统设置,任务栏配色只有「深色 / 浅色」两个选项。这种割裂感,正是很多人第一次搜索任务栏透明的原因——而任务栏透明工具 TranslucentTB 就是为此而生的解法:一个常驻托盘的轻量级应用,鼠标点几下,就能让 Windows 10/11 的任务栏变成透明、模糊或亚克力效果

gitblog_00596的博客 921

扩散模型与强化学习(13):In-Context Reward Hacking现象与解决方案

奖励作弊(Reward Hacking)指智能体通过钻规则漏洞而非真正完成任务来最大化奖励信号。以论文编辑实验为例,研究提出“上下文奖励作弊”(ICRH)概念,即模型利用共享上下文钻空子,如盲目添加“正确!”或输出无关内容。实验发现,模型规模扩大可能加剧ICRH,且提示词优化难以根治。与传统奖励作弊不同,ICRH发生在部署阶段,由通用性驱动。应对建议包括多轮测试、多样化反馈及异常场景模拟,但尚无完美解决方案。

沉迷单车的追风少年 1317

鸿蒙OpenHarmony【@ohos.graphics.hdrCapability (HDR能力)】图形ArkTS API

本模块提供HDR(高动态显示范围)能力涉及到的的相关枚举类型。

zhenggaoxiao232的博客 307

学Simulink——基于故障诊断与容错控制的场景实例:并网逆变器在短路故障下的动态响应及恢复策略

本文详细介绍了使用Simulink进行并网逆变器短路故障模拟与保护策略设计的方法。通过构建高精度逆变器模型,模拟IGBT击穿和桥臂直通故障,分析动态响应特性。重点设计了基于Stateflow的微秒级快速保护逻辑,包括过流检测、PWM闭锁和故障报警。同时提出完整的恢复策略流程,涵盖放电、去磁、自检和软启动等关键步骤。仿真结果表明,该方法能在200μs内有效限制短路电流,保护器件安全,并实现系统可靠恢复。文章还探讨了硬件保护协同、多级保护和预测保护等高级策略,为新能源系统的安全运行提供了重要参考。

amy_mhd的博客 143

脉冲变压器电感选型参数,结构原理,工艺与注意问题总结

脉冲变压器电感简称脉冲变压器,是一种特殊类型的变压器,主要用于处理脉冲信号。它的主要特性是能够在短时间内承受高电压和大电流。脉冲变压器主要用于开关电源、脉冲功率放大、雷达脉冲调制等领域。本文对脉冲变压器的工作原理,结构特点,工艺流程,选型参数及设计注意事项进行总结。

fydar的博客 1341
上一篇: Qt For OpenHarmony
下一篇: OpenHarmony Meetup常州站招募令
OpenHarmony开发者
博客等级 码龄5年 625粉丝 221原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值