SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性,如包管理、公共事件、通知等,都是系统能力之一。每个系统能力对应多个API,随着目标设备是否支持该系统能力共同存在或消失,也会随着DevEco Studio一起提供给开发者做联想。
开发者可以在系统能力SystemCapability列表中查询HarmonyOS的能力集。
每个设备根据其硬件能力,对应不同的支持能力集。3.1 Developer Preview版本仅支持远程模拟器的手机设备,设备的支持能力集由HarmonyOS系统定义。
SDK向DevEco Studio提供全量API,DevEco Studio识别开发者项目中选择的设备形态,找到该设备的支持能力集,筛选支持能力集包含的API并提供API联想。
方法1:HarmonyOS定义了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。