跳到主要内容

进程信息查询场景

场景介绍

从6.0.0(20) 开始,新增提供应用进程信息查询接口,可以获取设备上已启动的应用进程信息。进程信息包括进程ID、指令命令行、父进程PID、用户ID、用户组ID、进程启动时间、进程所有者ID类型、进程所有者ID等相关信息。

约束和限制

  1. 当前能力仅支持2in1设备。
  2. 支持单次输入要查询的进程数最大限制为16个。

业务流程

流程说明:

  1. 用户在hap应用上调用查询接口获取应用进程信息。
  2. Device Security Kit接口同步返回应用进程信息给hap应用,hap应用根据返回的应用进程信息进行业务处理。

接口说明

接口如下表,更多接口及使用方法请参见API参考

接口名描述
queryAllProcesses(): string获取所有的应用进程信息。
queryProcesses(pids: number[]): string获取输入的pid的应用进程信息。

开发步骤

  • 在开发准备过程中,需要申请权限:ohos.permission.QUERY_AUDIT_EVENT。
  • 只允许清单内的企业类应用申请该权限,申请方式请参考:申请使用企业类应用可用权限
  1. 导入Device Security Kit模块及相关公共模块。

    import { securityAudit } from '@kit.DeviceSecurityKit';
    import { BusinessError} from '@kit.BasicServicesKit';
    import { hilog } from '@kit.PerformanceAnalysisKit';
  2. 开发者根据实际场景,获取单个或所有应用进程信息。

    • 获取单个应用进程信息。

      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);
      }