当前位置: 首页 > article >正文

HarmonyOs next 跟着开发文档学习-判断api是否可以使用

文档总结,只选取部分重点内容信息,完整的内容信息需要自行去官网开发文档进行查看

一、官网开发文档

系统能力SystemCapability使用指南-API参考概述 - 华为HarmonyOS开发者icon-default.png?t=O83Ahttps://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/syscap-V5

二、判断该api是否可以使用,常用的两种方式:

(1)相同系统下:

方式一: 使用系统提供的canIUse进行判断

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

方式二:使用import的方式,通过判断导入的模块是否为undefined的结果 

import geolocationManager from '@ohos.geoLocationManager';

if (geolocationManager) {
geolocationManager.getCurrentLocation((location) => {
    console.log('current location: ' + JSON.stringify(location));
});
} else {
console.log('该设备不支持位置信息');
}

方式三:通过Native api

#include <stdio.h>
#include <stdlib.h>
#include "syscap_ndk.h"

char syscap[] = "SystemCapability.ArkUI.ArkUI.Full";
bool result = canIUse(syscap);
if (result) {
    printf("SysCap: %s is supported!\n", syscap);
} else {
    printf("SysCap: %s is not supported!\n", syscap);
}

(2)相同系统下的不同设备

在相同的系统下,不同的设备适配的状况可能不一致

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;
    }
})

三、系统能力列表

在我们创建项目的时候,我们可以看到Device type那里有四种类型可选择,这是我们所开发的设备类型


http://www.kler.cn/news/366862.html

相关文章:

  • 15分钟学 Go 第 22 天:包的使用
  • Ubuntu20.04安装VM tools并实现主机和虚拟机之间文件夹共享
  • Android Audio基础——音频输出声道设置(十九)
  • (三)第一个Qt程序“Qt版本的HelloWorld”
  • 散列表:为什么经常把散列表和链表放在一起使用?
  • 【Axure高保真原型】分级树筛选中继器表格
  • 油豆视频油豆影视app系统源码-试看/付费/免费/vip
  • Vue全栈开发旅游网项目首页
  • SQL查询
  • 2024年MathorCup妈杯大数据竞赛选题人数发布
  • Qt开发技巧(十九):定时器的调用问题,控件的透明问题,慎用事件过滤器,依赖库的路径链接,对话框控件的拉伸功能,解决Opengl的错误提示,Qt的日志屏蔽
  • 开源标准版系统长链接反向代理详解
  • OracleSQL语句 某字段重复数据只取一条
  • 初识Linux · 文件系统
  • ElasticSearch基础概念
  • 腾讯云上基于 Apache Pulsar 的大规模生产实践
  • C++【string类的使用】(下)
  • python爬虫数据存进mysql数据库
  • Mybatis-03.入门-配置SQL提示
  • qt 滚动条 美化
  • 基于SSM框架、传统文化学习系统的设计与实现
  • 什么是注意力机制?
  • 什么是 VolTE 中的 Slient Redial?它和 CSFB 什么关系?
  • git 如何获取当前分支的最新提交哈希值(Commit ID)
  • 005:PTGui全景拼接工具安装教程
  • 从零开始学PHP之函数