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 |
|
|
范例
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 |
|
|
week |
st ri ng |
|
|
on Hour |
nu mb er |
|
|
onMi nute |
nu mb er |
|
|
off Hour |
nu mb er |
|
|
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 |
调用结果,参考错误码 |