进程信息查询场景
场景介绍
从6.0.0(20) 开始,新增提供应用进程信息查询接口,可以获取设备上已启动的应用进程信息。进程信息包括进程ID、指令命令行、父进程PID、用户ID、用户组ID、进程启动时间、进程所有者ID类型、进程所有者ID等相关信息。
约束和限制
- 当前能力仅支持2in1设备。
- 支持单次输入要查询的进程数最大限制为16个。
业务流程

流程说明:
- 用户在hap应用上调用查询接口获取应用进程信息。
- Device Security Kit接口同步返回应用进程信息给hap应用,hap应用根据返回的应用进程信息进行业务处理。
接口说明
接口如下表,更多接口及使用方法请参见API参考。
| 接口名 | 描述 |
|---|---|
| queryAllProcesses(): string | 获取所有的应用进程信息。 |
| queryProcesses(pids: number[]): string | 获取输入的pid的应用进程信息。 |
开发步骤
- 在开发准备过程中,需要申请权限:ohos.permission.QUERY_AUDIT_EVENT。
- 只允许清单内的企业类应用申请该权限,申请方式请参考:申请使用企业类应用可用权限。
-
导入Device Security Kit模块及相关公共模块。
import { securityAudit } from '@kit.DeviceSecurityKit';import { BusinessError} from '@kit.BasicServicesKit';import { hilog } from '@kit.PerformanceAnalysisKit'; -
开发者根据实际场景,获取单个或所有应用进程信息。
-
获取单个应用进程信息。
const TAG = "SecurityAuditJsTest";let pids: number[] = [3622];try {hilog.info(0x0000, TAG, 'queryProcesses begin.');const result = securityAudit.queryProcesses(pids);hilog.info(0x0000, TAG, 'Succeeded in queryProcesses.');} catch (err) {let e: BusinessError = err as BusinessError;hilog.error(0x0000, TAG, 'queryProcesses failed: %{public}d %{public}s', e.code, e.message);} -
获取所有的应用进程信息。
const TAG = "SecurityAuditJsTest";try {hilog.info(0x0000, TAG, 'queryAllProcesses begin.');const result = securityAudit.queryAllProcesses();hilog.info(0x0000, TAG, 'Succeeded in queryAllProcesses.');} catch (err) {let e: BusinessError = err as BusinessError;hilog.error(0x0000, TAG, 'queryAllProcesses failed: %{public}d %{public}s', e.code, e.message);}
-