06-ShiMetaAPI介绍以及使用

1.1 前言

介绍ShiMeta系统特有API的使用方式,便于快速开发使用

1.2 资源

示例程序源码,由ShiMeta提供的API示例程序,便于二次开发人员用于API接口测试和功能参考

提示

  1. 文档获取:https://gitee.com/robots778/oh_shimeta_api_demo/tree/develop/

  2. API文档获取

  3. Full-SDK ;完整的系统SDK API

1.3 使用

  1. 导包

import shimeta from '@ohos.shimeta'
  1. 根据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);
  }
});