06-ShiMetaAPI介绍以及使用¶
1.1 前言¶
介绍ShiMeta系统特有API的使用方式,便于快速开发使用
1.2 资源¶
示例程序源码,由ShiMeta提供的API示例程序,便于二次开发人员用于API接口测试和功能参考
提示
文档获取:https://gitee.com/robots778/oh_shimeta_api_demo/tree/develop/
API文档获取
Full-SDK ;完整的系统SDK API
1.3 使用¶
导包
import shimeta from '@ohos.shimeta'
根据API文档调用相关函数
let version = shimeta.info_getApiVersion()
1.4 同步和异步使用¶
小技巧
NAPI一般支持两种方式,一种callback,一种promise.
Callback 仅支持异步回调,其中回调可选包含错误码,回调参数.一般在回调中判断错误码再执行后续步骤
Promise 支持异步调用,或者配合wait aync 等进行同步调用,其执行错误或执行结果错误时, 会直接抛出异常.需要try catch 捕捉并处理.
Promise普遍兼容Callback并扩展,以下仅介绍Promise的同步异步使用方式.
1.4.1 通过Promise同步使用
public static async getAvailableStorage() {
let number = await storageStatistics.getFreeSize()
let availableStorage = (number / 1024 / 1024 / 1024).toFixed(2).toString();
Logger.d(TAG, "getAvailableStorage successfully:" + JSON.stringify(availableStorage));
return availableStorage + `GB`
}
1.4.2 通过Promise异步使用
let path = "/dev";
statvfs.getFreeSize(path).then((number) => {
console.info("getFreeSize promise successfully, Size: " + number);
}).catch((err) => {
console.info("getFreeSize failed with error message: " + err.message + ", error code: " + err.code);
});
1.4.3 通过Callback异步使用
let path = "/dev";
statvfs.getFreeSize(path, (err, number) => {
if (err) {
console.info("getFreeSize failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("getFreeSize callback successfully, Size: " + number);
}
});