diff --git a/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-read.md b/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-read.md index 9291457f4c9e3d055dfe7df3528e031ffd97c9ef..216888ad43fe43b38fa5402e0274dae45013e320 100644 --- a/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-read.md +++ b/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-read.md @@ -21,7 +21,7 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接 -

int HiSysEventManager::AddEventListener(std::shared_ptr<HiSysEventSubscribeCallBackBase> listener, std::vector<struct ListenerRule>& rules)

+

int HiSysEventManager::AddEventListener(std::shared_ptr<HiSysEventSubscribeCallBackBase> listener, std::vector<ListenerRule>& rules)

接口功能:注册订阅HiSysEvent系统事件侦听对象,可设置规则订阅某些事件。

输入参数:

@@ -43,31 +43,26 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接 **表 2** ListenerRule订阅规则对象 - - - - - - - - - - - - - - - -

属性名称

-

描述

-

uint32_t ruleType

-

规则类型(匹配范围包括domain以及eventName):

-
  • 1:全字符匹配。
  • 2:前缀匹配。
  • 3:正则表达式匹配。
  • 其他值:无效的匹配方式。
-

std::string domain

-
  • domain:事件所属领域,如果传入的是空字符串,则默认事件领域字段匹配成功。
-

std::string eventName

-
  • eventName:事件的名称,如果传入的是空字符串,则默认事件名称字段匹配成功。
-
+ | 接口名称 | 返回值 | 描述 | + | --------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | -------------------------------------------- | + | ListenerRule(const std::string& tag, RuleType ruleType = RuleType::WHOLE_WORD) | 事件标签订阅规则对象 | 创建事件标签订阅规则对象 | + | ListenerRule(const std::string& domain, const std::string& eventName, RuleType ruleType = RuleType::WHOLE_WORD) | 事件领域与事件名称订阅规则对象 | 创建事件领域与事件名称订阅规则对象 | + | ListenerRule(const std::string& domain, const std::string& eventName, const std::string& tag, RuleType ruleType = RuleType::WHOLE_WORD) | 事件领域、事件名称,事件标签订阅规则对象 | 创建事件领域、事件名称,事件标签订阅规则对象 | + +- 参数tag:开发者自定义订阅规则的HisysEvent事件标签。事件标签字符串最大长度16个字符(含),有效字符包含大小写字母及数字。 + +- 参数domain:开发者自定义订阅规则的HisysEvent事件领域。事件领域字符串最大长度16个字符(含),有效字符包含大写字母、数字及下划线。 + +- 参数eventName:开发者自定义订阅规则的HisysEvent事件名称。事件名称字符串最大长度32个字符(含),有效字符包含大写字母、数字及下划线。 + +- 参数ruleType:开发者自定义订阅规则的规则类型。取值为枚举RuleType,具体值如下表。 + + | 类型 | 描述 | + | ---------- | ------------- | + | INVALID | 无效匹配类型 | + | WHOLE_WORD | 全词匹配类型 | + | PREFIX | 前缀匹配类型 | + | REGULAR | 正则匹配类型 | **表 3** HiSysEventSubscribeCallBackBase订阅对象 @@ -107,11 +102,11 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接 - 注册回调对象: - HiSysEventManager::AddEventListener\(std::shared\_ptr listener, std::vector& rules\)。 + HiSysEventManager::AddEventListener\(std::shared\_ptr listener, std::vector& rules\)。 ``` - // 以下是订阅domain=HIVIEWDFX的所有系统事件的应用例子 + // 以下是订阅系统事件的示例 #include "hisysevent_manager.h" #include namespace OHOS { @@ -133,11 +128,13 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接 // 调用订阅接口注册开发实现的订阅对象 auto toolListener = std::make_shared(); - struct ListenerRule rule; - rule.ruleType = 1; // 1: default type - rule.domain = "HIVIEWDFX"; - std::vector sysRules; - sysRules.push_back(rule); + ListenerRule tagRule("dfx"); // 事件标签规则订阅,规则类型默认的全词匹配类型 + ListenerRule regRule("dfx.*", RuleType::REGULAR); // 事件标签规则订阅,规则类型为正则匹配类型 + ListenerRule domainNameRule("HIVIEWDFX", "APP_USAGE", RuleType::PREFIX); // 事件领域及事件名称规则订阅,规则类型前缀匹配类型 + std::vector sysRules; + sysRules.push_back(tagRule); + sysRules.push_back(regRule); + sysRules.push_back(domainNameRule); HiSysEventManager::AddEventListener(toolListener, sysRules); ``` diff --git a/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-tool.md b/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-tool.md index 37a5aaea1127b102290eb2afb2c6ce5fa887a0a9..a98d9ee34db923f52349f2a274d16f9df7c6a9af 100644 --- a/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-tool.md +++ b/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-tool.md @@ -14,19 +14,42 @@ 工具预置在/system/bin目录下,命令可以在任意目录执行。 ``` - hisysevent [-r | -l [-s