02-ShiMetaAPI接口

1、设备信息

1.1、info_getApiVersion

函数名称: info_getApiVersion(): string;

描述: 获取目前API版本号

参数:

范例

import shimeta from '@ohos.shimeta'

let version = shimeta.info_getApiVersion()

Logger.i(TAG,version)

//输出结果 : V1.0.0-release

返回参数说明

参数名

类型

说明

返回值

String

API版本号

备注

1.2、info_getTotalStorage

函数名称: info_getTotalStorage(): string;

描述: 获取设备存储总容量

参数:

范例

import shimeta from '@ohos.shimeta'

let totalRam:string =shimeta.info_getTotalMemory()

返回参数说明

参数名

类型

说明

返回值

String

设备存储总容量(KB)

备注

1.3、info_getTotalMemory

函数名称: info_getTotalMemory(): string;

描述: 获取设备内存总容量

参数:

范例

import shimeta from '@ohos.shimeta'

let ret = shimeta.info_getTotalMemory()

返回参数说明

参数名

类型

说明

返回值

String

内存总容量(KB)

备注

1.4、info_getAvailMemory

函数名称: info_getAvailMemory(): string;

描述: 获取设备剩余可用内存容量

参数:

范例

import shimeta from '@ohos.shimeta'

let ret = shimeta.info_getAvailMemory()

返回参数说明

参数名

类型

说明

返回值

String

剩余可用内存容量(KB)

备注

1.5、info_getMCUVersion

函数名称: info_getMCUVersion(): string;

描述: 获取MCU版本

参数:

范例

import shimeta from '@ohos.shimeta'

let version: string = shimeta.info_getMCUVersion();

返回参数说明

参数名

类型

说明

返回值

number

调用结果,参见错误码

备注

2、显示管理

2.1、disp_setDisplayRotation

函数名称: disp_setDisplayRotation(screen_id: number, degree: number): number;

描述: 设置屏幕旋转角度

参数:

参数名*

类 型

必 填 *

说明

screen_id

n umber

屏幕ID 0:主屏 1:副屏

degree

n umber

0: Orientation::UNSPECIFIED 1: Orientation::VERTICAL 2:Orientation::HORIZONTAL 3: Orientation::REVERSE_VERTICAL 4: Orientation::REVERSE_HORIZONTAL

范例

import shimeta from '@ohos.shimeta'

//重启生效
let ret: number = shimeta.disp_setDisplayRotation(0, 2);

返回参数说明

参数名

类型

说明

返回值

number

调用结果,参见错误码

备注

2.2、disp_getDisplayRotation

函数名称: disp_getDisplayRotation(screen_id: number): number;

描述: 获取屏幕旋转角度

参数:

参数名

类型

必 填

说明

screen_id

number

屏幕ID 0:主屏 1:副屏

范例

import shimeta from '@ohos.shimeta'

let ret: number = shimeta.disp_getDisplayRotation(0)

返回参数说明

参数名

类型

说明

返回值

number

调用结果,参见错误码

备注

2.3、disp_setDisplayDensity

函数名称: disp_setDisplayDensity(value: number): number;

描述: 设置显示密度 DPI

参数:

参 数名

类型*

必 填

说明

dpi

number

DPI值,valid range is 80~640,

范例

import shimeta from '@ohos.shimeta'

//重启生效
let ret:number = shimeta.disp_setDisplayDensity(dpi);

返回参数说明

参数名

类型

说明

返回值

number

调用结果,参见错误码

备注

2.4、disp_getDisplayDensity

函数名称: disp_getDisplayDensity(): number;

描述: 获取屏幕DPI

参数:

范例

import shimeta from '@ohos.shimeta'

let dpi: number = shimeta.disp_getDisplayDensity()

返回参数说明

参数名

类型

说明

返回值

number

DPI值

备注

2.5、disp_setLcdBackLightEnable

函数名称: disp_setLcdBackLightEnable(screen_id:number, enable:bool)

描述: 设置屏幕背光开关

API版本:

参数:

参数名

类型

说明

screen_id

number

0:第一路背光 1:第二路背光

enable

bool

true:开 false:关

返回参数说明

参数名

类型

说明

返回值

number

调用结果,参考错误码

2.6、disp_getLcdBackLightEnable

函数名称: disp_getLcdBackLightEnable(screen_id:number)

描述: 获取屏幕背光开关状态

参数:

参数名

类型

说明

screen_id

number

0:第一路背光 1:第二路背光

返回参数说明

参数名

类型

说明

返回值

number

1:开 0:关

3、应用

3.1、sys_setSystemBootApp

函数名称: sys_setSystemBootApp(app_param: string): number;

描述: 设置需要开机自启的应用

参数:

参 数名

类 型 *

  • 说明

必 | 填 | * | * |

app _param

str ing

是 | 三部分组成,(类名”/”包名”/”模块类型)举例:
com.o
hos.settings.MainAbility/com.ohos.settings/phone

范例

import shimeta from '@ohos.shimeta'

//启动包名数据可用通过以下方式获取
    getAppParam(bundleName) {

    let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_ABILITY | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_HAP_MODULE;

    try {
        bundleManager.getBundleInfo(protectName, bundleFlags,100).then((data) => {

        Logger.i(TAG, `getBundleInfo successfully. Data: ${JSON.stringify(data)}`);

        this.protectAbility = data.hapModulesInfo[0].mainElementName
        this.protectModuleName = data.hapModulesInfo[0].name
        }).catch((err: BusinessError) => {
        Logger.i(TAG, `getBundleInfo failed. Cause: ${err.message}`, );
        });
    } catch (err) {
        let message = (err as BusinessError).message;
        Logger.i(TAG, `getBundleInfo failed. Cause: ${message}`, );
    }
    }
//设置param为default 为取消开机启动应用
let param:string = this.protectAbility+"/"+bundleName+"/"+this.protectModuleName;
let ret:number = shimeta.sys_setSystemBootApp(param)

返回参数说明

参数名

类型

说明

返回值

number

调用结果,参见错误码

备注

3.2、sys_getSystemBootApp

函数名称: sys_getSystemBootApp(): string;

描述: 获取开机自启的应用参数

参数:

范例

import shimeta from '@ohos.shimeta'

let ret:string = shimeta.sys_getSystemBootApp()

返回参数说明

参数名

类型

说明

返回值

string

设置的应用参数

备注

3.3、sys_setDaemonsBundle

函数名称: sys_setDaemonsBundle(bundleName: string, time: number): number;

描述: 设置前台守护应用

参数:

** 参数名**

类 型

** 必 填 **

说明

bu ndleName

st ring

需要守护的应用包名,配置”0”则关闭

time

nu mber

当应用退出最前端后多久重新拉起应用,单位秒

范例

import shimeta from '@ohos.shimeta'

shimeta.sys_setDaemonsBundle("com.ohos.settings", 10);

//关闭进程守护,后面提供单独接口
shimeta.sys_setDaemonsBundle("default", 10);

返回参数说明

参数名

类型

说明

返回值

number

调用结果,参见错误码

备注

3.4、sys_getDaemonsBundle

函数名称: sys_getDaemonsBundle(): Promise;

描述: 获取前台守护应用信息

参数:

范例

import shimeta from '@ohos.shimeta'
import { BusinessError } from '@ohos.base';

shimeta.sys_getDaemonsBundle().then((value: string) => {
let json: Record<string, Object> = JSON.parse(value)

let bundleName = json.bundleName as string
let time = json.time as number

}).catch((err: BusinessError) => {
console.error("error message: " + err.message + ", error code: " + err.code);
});

返回参数说明

参数 名*

** 类型**

说明

返 回值

P romise

Promise对象,结果: {“bundleName”:”com.ohos.settings”,”time”:”10”}

备注

3.5、sys_setAutoPowerOnOff

函数名称: sys_setAutoPowerOnOff(enable: number, week: string, onHour: number, onMinute: number, offHour: number, offMinute: number): number;

描述: 设置定时开关机

参数:

** 参数 名**

** 类 型 **

  • 说明

必 | 填 | * | * |

en able

nu mb er

是 | 1:打开 0:关闭


week

st ri ng

是 | 日期,int[
]{0,0,0,0,0,0,0}代表7天内的重复,第一位是周日,1:设置
0:不设置

on Hour

nu mb er

是 | 开机时间点 (小时) (24小时制)


onMi nute

nu mb er

是 | 开机时间点 (分钟)


off Hour

nu mb er

是 | 关机时间点 (小时) (24小时制)


o ffMi nute

nu mb er

是 | 关机时间点 (分钟)


范例

import shimeta from '@ohos.shimeta'

//设置每天9:30开机,22:00关机
let array = [1, 1, 1, 1, 1, 1, 1]
ret = shimeta.sys_setAutoPowerOnOff(1, array.toString(), 9, 30, 22, 0)

返回参数说明

参数名

类型

说明

返回值

number

调用结果,参见错误码

备注

  • week 参数的数组第一位为星期日,依此类推

  • 不设置重复,只设置一次时,设置的关机时间需要在当前时间之后。

  • 关机时间需要和当前时间间隔3分钟以上;开机时间和关机时间之间也需要间隔3分钟以上

  • 定时开关机错误码:

变量名

** 错误 码**

解释

SET_SUCCESS

0

成功

ERROR_UNKNOWN

-1

错误

ERROR_CONFIG

-2

参数有误

ERROR_EXCEPTION

-5

异常

ERROR_TIME_PASSED

100

设置时间已过

ERROR_COMPARE_ON_OFF_TIME

101

开机时间和关机时间没有相差3分钟

ERROR_COMPARE_NOW_OFF_TIME

102

当前时间和关机时间没有相差3分钟

ERROR_COMPARE_NOW_ON_TIME

103

当前时间和开机时间没有相差6分钟

3.6、sys_getAutoPowerOnOff

函数名称: sys_getAutoPowerOnOff(): Promise;

描述: 获取定时开关机信息

参数:

范例

import shimeta from '@ohos.shimeta'
import { BusinessError } from '@ohos.base';

shimeta.sys_getAutoPowerOnOff().then((data: string) => {
console.debug(TAG, "sys_getAutoPowerOnOff data:" + data);
//输出:{"enable":"1","offHour":"15","offMinute":"49","onHour":"15","onMinute":"53","week":"1,1,1,1,1,1,1"}

let json: Record<string, Object> = JSON.parse(data)
let enable = json.enable as number
.....
}).catch((err: BusinessError) => {
console.error("error message: " + err.message + ", error code: " + err.code);
})

返回参数说明

参数名

类型

说明

返回值

Promise

Promise对象,JSON结果

备注

3.7、sys_doSilentInstallApp

函数名称: sys_doSilentInstallApp(hapPath:string,isRun:number,bundleName:string): number;

描述: 静默安装应用

参数:

参数名

类型

说明

hapPath

string

待安装 应用所在路径,系统绝对 路径,不能使用沙箱路径

isRun

number

安装后 是否启动应用,1:启动, 0:不启动

bundleName

string

需要启动的包名

返回参数说明

范例

import shimeta from '@ohos.shimeta';

shimeta.sys_doSilentInstallApp("/data/Sogou.hap", 1,`com.OpenHarmony.sogou.input`)

备注

4、IO

4.1、sys_setGpioDirection

函数名称: sys_setGpioDirection(id: number, direction: number, value: number): Promise;

描述: 设置 GPIO 输入输出状态

参数:

范例

import shimeta from '@ohos.shimeta'
import { BusinessError } from '@ohos.base';

//设置IO口4 的方向为输出,状态为低电平
shimeta.sys_setGpioDirection(4,1,0).then((result: number) => {
promptAction.showToast({
    message: `sys_setGpioDirection result :${result}`
})
}).catch((err: BusinessError) => {
console.error("error message: " + err.message + ", error code: " + err.code);
});

返回参数说明

参数名

类型

说明

返回值

Promise

Promise对象 ,调用结果,参考错误码

备注

4.2、sys_getGpioDirection

函数名称: sys_getGpioDirection(io:number): Promise;

描述: 获取 GPIO 输入输出状态

参数:

参数名

类型

必填

说明

io

number

io口,从1-10

范例

import shimeta from '@ohos.shimeta'
import { BusinessError } from '@ohos.base';

shimeta.sys_getGpioDirection(4).then((value: number) => {

promptAction.showToast({
    message: `sys_getGpioDirection result :${value}`
})
}).catch((err: BusinessError) => {
console.error("error message: " + err.message + ", error code: " + err.code);
});

返回参数说明

参数名

类型

说明

返回值

Promise

Promise对象 ,调用结果,参见错误码

备注

4.3、sys_getGpioValue

函数名称: sys_getGpioValue(io:number): Promise;

描述: 获取 GPIO 的电平状态

参数:

参数名

类型

必填

说明

io

number

io口,从1-10

范例

import shimeta from '@ohos.shimeta'
import { BusinessError } from '@ohos.base';

shimeta.sys_getGpioValue(4).then((value: number) => {

promptAction.showToast({
    message: `sys_getGpioValue result :${value}`
})
}).catch((err: BusinessError) => {
console.error("error message: " + err.message + ", error code: " + err.code);
});

返回参数说明

参数名

类型

说明

返回值

Promise

Promise对象 ,调用结果,参见错误码

备注

4.4、sys_setControl

函数名称: sys_setControl(type: number, enable: boolean): Promise;

描述: 其它IO相关设置 (主板状态灯,模块电源)

参数:

参数名

类型

必填

说明

type

number

3:wifi power 4:wifi reset 5:led control 6:speak power 7:lvds power 8:lvds reset 9:4G power 10:4G reset 11:LAN power 12:LAN reset 13:SD power 14:SD reset 15:TP power 16:TP reset 17:GBE reset 18:EDP BackLight power 19:Fan power

enable

boolean

true:打开 false:关闭

范例

import shimeta from '@ohos.shimeta'
import { BusinessError } from '@ohos.base';

shimeta.sys_setControl(5, this.ledEnable).then(() => {
promptAction.showToast({
    message: `sys_setControl type:5 ,Enable :${this.ledEnable}`
})
this.ledEnable = !this.ledEnable
}).catch((err: BusinessError) => {
console.error("error message: " + err.message + ", error code: " + err.code);
});

返回参数说明

参数名

类型

说明

返回值

Promise

Promise对象,调 用结果,异常参见错误码

备注

普通应用只支持控制 LED灯(5)和风扇(19)

4.5、sys_getControl

函数名称: sys_getControl(type: number): Promise;

描述: 获取其它IO相关状态 (主板状态灯,模块电源)

参数:

参数名

类型

必填

说明

type

number

3:wifi power 4:wifi reset 5:led control 6:speak power 7:lvds power 8:lvds reset 9:4G power 10:4G reset 11:LAN power 12:LAN reset 13:SD power 14:SD reset 15:TP power 16:TP reset 17:GBE reset 18:EDP BackLight power 19:Fan power

范例

import shimeta from '@ohos.shimeta'
import { BusinessError } from '@ohos.base';

shimeta.sys_getControl(5).then((result: number) => {
this.ledEnable = result == 0 ? false : true

Logger.d(TAG, "sys_getControl :" + result);
}).catch((err: BusinessError) => {
Logger.e(TAG, "error message: " + err.message + ", error code: " + err.code);
});

返回参数说明

参数名

类型

说明

返回值

Promise

Promise对象,调 用结果,异常参见错误码

备注

普通应用只支持控制 LED灯(5)和风扇(19)

5、开发接口

5.1、sys_setCommand

函数名称: sys_setCommand(command: string): Promise;

描述: 通过Root执行指令命令,返回结果

参数:

参数名

类型

必填

说明

command

string

例如:cat xxx 等接口

范例

import shimeta from '@ohos.shimeta'
import { BusinessError } from '@ohos.base';

let command = `cat /proc/meminfo |grep MemTotal`;

shimeta.sys_setCommand(command).then((result: string) => {
promptAction.showToast({
    message: result
})
}).catch((error: BusinessError) => {
Logger.e(TAG, `error code: ${error?.code}, error msg: ${error?.message}`);
})

返回参数说明

参数名

类型

说明

返回值

Promise

Pro mise对象,命令执行结果

备注

5.2、sys_copyFile

函数名称: sys_copyFile(srcFile: string, destFile: string): Promise;

描述: 全局拷贝文件

参数:

参数名

类型

必填

说明

srcFile

string

源地址,绝对路径

destFile

string

目 标地址,绝对路径

范例

import shimeta from '@ohos.shimeta'
import { BusinessError } from '@ohos.base';

shimeta.sys_copyFile(srcFile, destFile).then(() => {
Logger.d(TAG, `copyFile success:`)
promptAction.showToast({
    message: `拷贝成功`
})

}).catch((err: BusinessError) => {
console.error("error message: " + err.message + ", error code: " + err.code);
});

返回参数说明

参数名

类型

说明

返回值

Promise

Promise对象 ,调用结果,参见错误码

备注

5.3、dev_getFilesPathFromPkg

函数名称: dev_getFilesPathFromPkg(userId:number,bundleName:string): string;

描述: 设置指定应用的绝对路径files地址

参数:

参数名

类型

必填

说明

userId

number

应用userID号, 普通应用为100

bundleName

string

bundleName

范例

import shimeta from '@ohos.shimeta'

///data/app/el2/100/base/com.shimeta.apidemo/haps/entry/files

let ret = shimeta.dev_getFilesPathFromPkg(100, `com.shimeta.apidemo`)

返回参数说明

备注

6、看门狗

6.1、sys_setWatchDog

函数名称: sys_setWatchDog(enable: boolean, poweroffTime: number): Promise;

描述: 设置开门狗开关状态

参数:

参数名

类型

必填

说明

enable

boolean

true:打开 false:关闭

poweroff_time

number

不喂狗之后的 关机时间,默认 为60秒。单位:秒

范例

import shimeta from '@ohos.shimeta'
import { BusinessError } from '@ohos.base';

shimeta.sys_setWatchDog(true, 60).then(() => {
promptAction.showToast({
    message: `sys_setWatchDog result success`
})
}).catch((err: BusinessError) => {
console.error("error message: " + err.message + ", error code: " + err.code);
});

返回参数说明

参数名

类型

说明

返回值

Promise

Prom ise对象,调用结果,错误 会抛出异常,参见错误码

备注

接口中的poweroff_time参数暂未支持,默认60秒

6.2、sys_getWatchDog

函数名称: sys_getWatchDog(): Promise;

描述: 获取开门狗开关状态

参数:

范例

import shimeta from '@ohos.shimeta'
import { BusinessError } from '@ohos.base';

shimeta.sys_getWatchDog().then((result: number) => {
Logger.d(TAG, "getWatchDog result:" + result);
this.watchDogEnable = result == 1 ? `true` : `false`
promptAction.showToast({
    message: `sys_getWatchDog result :${result}`
})
}).catch((err: BusinessError) => {
console.error("error message: " + err.message + ", error code: " + err.code);
});

返回参数说明

参数名

类型

说明

返回值

Promise

Promise对象 ,结果参数:看门狗状态

备注

6.3、sys_setWatchDogFeed

函数名称: sys_setWatchDogFeed(): Promise;

描述: 开门狗喂狗

参数:

范例

import shimeta from '@ohos.shimeta'
import { BusinessError } from '@ohos.base';

shimeta.sys_setWatchDogFeed().then(() => {
promptAction.showToast({
    message: `sys_setWatchDogFeed result success`
})
}).catch((err: BusinessError) => {
console.error("error message: " + err.message + ", error code: " + err.code);
});

返回参数说明

参数名

类型

说明

返回值

Promise

Promise对象

备注

7、网络管理

7.1、net_getMacAddress

函数名称: net_getMacAddress(type: string): string;

描述: 获取网卡设备的MAC地址

参数:

参数名

类型

说明

type

String

网络类型 eth0:以太网e th1:以太网1wlan0:WIFI (暂不支持)

范例

import shimeta from '@ohos.shimeta'

let ret:string = shimeta.net_getMacAddress("eth0")

返回参数说明

参数名

类型

说明

返回值

String

MAC地址

备注

8、硬件控制

8.1、dev_writePublicPartition

函数名称: dev_writePublicPartition(type:number, deviceId:number, areaId:number, start_addr:number, size:number, value:string)

描述: 写入公共分区

参数:

参数名

类型

说明

type

number

类型 0:emmc 1:eeprom

deviceId

number

读取eeprom时,设备ID: 从0开始, 每个ID代表一个EEPROM

areaId

number

读取eepro m时,区域ID:从1开始, 每个ID代表一块区域

start_addr

number

起始地址

size

number

数据长度

value

string

写入数据

import shimeta from '@ohos.shimeta'

let emmcSrc = "ShiMeta_emmc"
let buf = buffer.from(emmcSrc, 'utf-8');

shimeta.dev_writePublicPartition(0, 0, 0, 0, buf.length, emmcSrc, (result) => {
console.debug("SHIMETA dev_writePublicPartition result:" + result);
});

返回参数说明

参数名

类型

说明

返回值

number

调用结果,参考错误码

8.2、dev_readPublicPartition

函数名称: dev_readPublicPartition(type:number, deviceId:number, areaId:number, start_addr:number, size:number, value:string)

描述: 读取分区

参数:

参数名

类型

说明

type

number

类型 0:emmc 1:eeprom

deviceId

number

读取eeprom时,设备ID: 从0开始, 每个ID代表一个EEPROM

areaId

number

读取eepro m时,区域ID:从1开始, 每个ID代表一块区域

start_addr

number

起始地址

size

number

数据长度

import shimeta from @ohos.shimeta

let emmcSrc = “ShiMeta_emmc_public” let buf = buffer.from(emmcSrc, ‘utf-8’);

shimeta.dev_readPublicPartition(0, 0, 0, 0, buf.length, (result) => {

console.debug(“SHIMETA dev_readPublicPartition result:” + buffer.from(result).toString(‘utf-8’));

});

返回参数说明

参数名

类型

说明

返回值

number

调用结果,参考错误码