• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# HiAppEvent
2
3
4## 概述
5
6HiAppEvent模块提供应用事件打点功能。
7
8为应用程序提供事件打点功能,记录运行过程中上报的故障事件、统计事件、安全事件和用户行为事件。基于事件信息,您可以分析应用的运行状态。
9
10为应用程序提供事件打点功能,记录运行过程中上报的故障事件、统计事件、安全事件和用户行为事件。基于事件信息,开发者可以分析应用的运行状态。
11
12**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
13
14**起始版本:** 8
15
16
17## 汇总
18
19
20### 文件
21
22| 名称 | 描述 |
23| -------- | -------- |
24| [hiappevent.h](hiappevent_8h.md) | HiAppEvent模块的应用事件打点函数定义。<br/>**引用文件**:<hiappevent/hiappevent.h><br/>**库**:libhiappevent_ndk.z.so |
25| [hiappevent_cfg.h](hiappevent__cfg_8h.md) | 定义事件打点配置函数的所有配置项名称。<br/>**引用文件**:<hiappevent/hiappevent_event.h><br/>**库**:libhiappevent_ndk.z.so |
26| [hiappevent_event.h](hiappevent__event_8h.md) | 定义所有预定义事件的事件名称。<br/>**引用文件**:<hiappevent/hiappevent_param.h><br/>**库**:libhiappevent_ndk.z.so |
27| [hiappevent_param.h](hiappevent__param_8h.md) | 定义所有预定义事件的参数名称。<br/>**引用文件**:<hiappevent/hiappevent_cfg.h><br/>**库**:libhiappevent_ndk.z.so |
28
29
30### 结构体
31
32| 名称 | 描述 |
33| -------- | -------- |
34| struct&nbsp;&nbsp;[HiAppEvent_AppEventInfo](_hi_app_event___app_event_info.md) | 单个事件信息,包含事件领域,事件名称,事件类型和json格式字符串表示的事件中携带的自定义参数列表。  |
35| struct&nbsp;&nbsp;[HiAppEvent_AppEventGroup](_hi_app_event___app_event_group.md) | 一组事件信息,包含事件组的名称,按名称分组的单个事件信息数组,事件数组的长度。  |
36
37
38### 宏定义
39
40| 名称 | 描述 |
41| -------- | -------- |
42| [DISABLE](#disable)&nbsp;&nbsp;&nbsp;"disable" | 事件打点开关。默认值为false。true:关闭打点功能,false:不关闭打点功能。  |
43| [MAX_STORAGE](#max_storage)&nbsp;&nbsp;&nbsp;"max_storage" | 事件文件目录存储配额大小。默认值为“10M”。  |
44| [EVENT_USER_LOGIN](#event_user_login)&nbsp;&nbsp;&nbsp;"hiappevent.user_login" | 用户登录事件。  |
45| [EVENT_USER_LOGOUT](#event_user_logout)&nbsp;&nbsp;&nbsp;"hiappevent.user_logout" | 用户登出事件。  |
46| [EVENT_DISTRIBUTED_SERVICE_START](#event_distributed_service_start)&nbsp;&nbsp;&nbsp;"hiappevent.distributed_service_start" | 分布式服务事件。  |
47| [EVENT_APP_CRASH](#event_app_crash)&nbsp;&nbsp;&nbsp;"APP_CRASH" | 应用崩溃事件。  |
48| [EVENT_APP_FREEZE](#event_app_freeze)&nbsp;&nbsp;&nbsp;"APP_FREEZE" | 应用卡顿事件。  |
49| [EVENT_APP_LAUNCH](#event_app_launch)&nbsp;&nbsp;&nbsp;"APP_LAUNCH" | 应用加载事件。  |
50| [EVENT_SCROLL_JANK](#event_scroll_jank)&nbsp;&nbsp;&nbsp;"SCROLL_JANK" | 应用滑动卡顿事件。  |
51| [EVENT_CPU_USAGE_HIGH](#event_cpu_usage_high)&nbsp;&nbsp;&nbsp;"CPU_USAGE_HIGH" | 应用CPU资源占用高事件。  |
52| [EVENT_BATTERY_USAGE](#event_battery_usage)&nbsp;&nbsp;&nbsp;"BATTERY_USAGE" | 应用电源使用率事件。  |
53| [EVENT_RESOURCE_OVERLIMIT](#event_resource_overlimit)&nbsp;&nbsp;&nbsp;"RESOURCE_OVERLIMIT" | 应用资源超限事件。  |
54| [EVENT_ADDRESS_SANITIZER](#event_address_sanitizer)&nbsp;&nbsp;&nbsp;"ADDRESS_SANITIZER" | 应用踩内存事件。  |
55| [EVENT_MAIN_THREAD_JANK](#event_main_thread_jank)&nbsp;&nbsp;&nbsp;"MAIN_THREAD_JANK" | 应用主线程超时事件。  |
56| [EVENT_APP_HICOLLIE](#event_app_hicollie)&nbsp;&nbsp;&nbsp;"APP_HICOLLIE" | 应用任务执行超时事件。  |
57| [DOMAIN_OS](#domain_os)&nbsp;&nbsp;&nbsp;"OS" | OS作用域。  |
58| [PARAM_USER_ID](#param_user_id)&nbsp;&nbsp;&nbsp;"user_id" | 用户ID。  |
59| [PARAM_DISTRIBUTED_SERVICE_NAME](#param_distributed_service_name)&nbsp;&nbsp;&nbsp;"ds_name" | 分布式服务名称。  |
60| [PARAM_DISTRIBUTED_SERVICE_INSTANCE_ID](#param_distributed_service_instance_id)&nbsp;&nbsp;&nbsp;"ds_instance_id" | 分布式服务实例ID。  |
61
62
63### 类型定义
64
65| 名称 | 描述 |
66| -------- | -------- |
67| typedef struct [HiAppEvent_AppEventInfo](_hi_app_event___app_event_info.md) [HiAppEvent_AppEventInfo](#hiappevent_appeventinfo) | 单个事件信息,包含事件领域,事件名称,事件类型和json格式字符串表示的事件中携带的自定义参数列表。  |
68| typedef struct [HiAppEvent_AppEventGroup](_hi_app_event___app_event_group.md) [HiAppEvent_AppEventGroup](#hiappevent_appeventgroup) | 一组事件信息,包含事件组的名称,按名称分组的单个事件信息数组,事件数组的长度。  |
69| typedef struct ParamListNode \* [ParamList](#paramlist) | 事件参数列表节点。  |
70| typedef struct [HiAppEvent_Watcher](#hiappevent_watcher) [HiAppEvent_Watcher](#hiappevent_watcher) | 用于接收app事件的监听器。  |
71| typedef struct [HiAppEvent_Processor](#hiappevent_processor) [HiAppEvent_Processor](#hiappevent_processor) | 用于处理app事件上报的处理者。  |
72| typedef struct [HiAppEvent_Config](#hiappevent_config) [HiAppEvent_Config](#hiappevent_config) | 用于设置系统事件触发条件的配置对象。  |
73| typedef void(\* [OH_HiAppEvent_OnReceive](#oh_hiappevent_onreceive)) (const char \*domain, const struct [HiAppEvent_AppEventGroup](_hi_app_event___app_event_group.md) \*appEventGroups, uint32_t groupLen) | 监听器接收到事件后,将触发该回调,将事件内容传递给调用方。  |
74| typedef void(\* [OH_HiAppEvent_OnTrigger](#oh_hiappevent_ontrigger)) (int row, int size) | 监听器收到事件后,若监听器中未设置OH_HiAppEvent_OnReceive回调,将保存该事件。当保存的事件满足通过 OH_HiAppEvent_SetTriggerCondition设定的条件后,将触发该回调。回调结束后,当新保存的事件消息再次满足设定的条件后,将再次进行回调。  |
75| typedef void(\* [OH_HiAppEvent_OnTake](#oh_hiappevent_ontake)) (const char \*const \*events, uint32_t eventLen) | 使用OH_HiAppEvent_TakeWatcherData获取监听器接收到的事件时,监听器接收到的事件将通过该回调函数传递给调用者。  |
76
77
78### 枚举
79
80| 名称 | 描述 |
81| -------- | -------- |
82| [HiAppEvent_ErrorCode](#hiappevent_errorcode) {<br/>HIAPPEVENT_SUCCESS = 0, <br/>HIAPPEVENT_INVALID_PARAM_VALUE_LENGTH = 4, <br/>HIAPPEVENT_PROCESSOR_IS_NULL = -7, <br/>HIAPPEVENT_PROCESSOR_NOT_FOUND = -8,<br/>HIAPPEVENT_INVALID_PARAM_VALUE = -9, <br/>HIAPPEVENT_EVENT_CONFIG_IS_NULL = -10, <br/>HIAPPEVENT_OPERATE_FAILED = -100, <br/>HIAPPEVENT_INVALID_UID = -200<br/>} | 错误码定义。  |
83| [EventType](#eventtype) {<br/>FAULT = 1, <br/>STATISTIC = 2, <br/>SECURITY = 3, <br/>BEHAVIOR = 4 <br/>} | 事件类型。  |
84
85
86### 函数
87
88| 名称 | 描述 |
89| -------- | -------- |
90| [ParamList](#paramlist) [OH_HiAppEvent_CreateParamList](#oh_hiappevent_createparamlist) (void) | 创建一个指向参数列表对象的指针。  |
91| void [OH_HiAppEvent_DestroyParamList](#oh_hiappevent_destroyparamlist) ([ParamList](#paramlist) list) | 销毁一个指向参数列表对象的指针,释放其分配内存。  |
92| [ParamList](#paramlist) [OH_HiAppEvent_AddBoolParam](#oh_hiappevent_addboolparam) ([ParamList](#paramlist) list, const char \*name, bool boolean) | 添加一个布尔参数到参数列表中。  |
93| [ParamList](#paramlist) [OH_HiAppEvent_AddBoolArrayParam](#oh_hiappevent_addboolarrayparam) ([ParamList](#paramlist) list, const char \*name, const bool \*booleans, int arrSize) | 添加一个布尔数组参数到参数列表中。  |
94| [ParamList](#paramlist) [OH_HiAppEvent_AddInt8Param](#oh_hiappevent_addint8param) ([ParamList](#paramlist) list, const char \*name, int8_t num) | 添加一个int8_t参数到参数列表中。  |
95| [ParamList](#paramlist) [OH_HiAppEvent_AddInt8ArrayParam](#oh_hiappevent_addint8arrayparam) ([ParamList](#paramlist) list, const char \*name, const int8_t \*nums, int arrSize) | 添加一个int8_t数组参数到参数列表中。  |
96| [ParamList](#paramlist) [OH_HiAppEvent_AddInt16Param](#oh_hiappevent_addint16param) ([ParamList](#paramlist) list, const char \*name, int16_t num) | 添加一个int16_t参数到参数列表中。  |
97| [ParamList](#paramlist) [OH_HiAppEvent_AddInt16ArrayParam](#oh_hiappevent_addint16arrayparam) ([ParamList](#paramlist) list, const char \*name, const int16_t \*nums, int arrSize) | 添加一个int16_t数组参数到参数列表中。  |
98| [ParamList](#paramlist) [OH_HiAppEvent_AddInt32Param](#oh_hiappevent_addint32param) ([ParamList](#paramlist) list, const char \*name, int32_t num) | 添加一个int32_t参数到参数列表中。  |
99| [ParamList](#paramlist) [OH_HiAppEvent_AddInt32ArrayParam](#oh_hiappevent_addint32arrayparam) ([ParamList](#paramlist) list, const char \*name, const int32_t \*nums, int arrSize) | 添加一个int32_t数组参数到参数列表中。  |
100| [ParamList](#paramlist) [OH_HiAppEvent_AddInt64Param](#oh_hiappevent_addint64param) ([ParamList](#paramlist) list, const char \*name, int64_t num) | 添加一个int64_t参数到参数列表中。  |
101| [ParamList](#paramlist) [OH_HiAppEvent_AddInt64ArrayParam](#oh_hiappevent_addint64arrayparam) ([ParamList](#paramlist) list, const char \*name, const int64_t \*nums, int arrSize) | 添加一个int64_t数组参数到参数列表中。  |
102| [ParamList](#paramlist) [OH_HiAppEvent_AddFloatParam](#oh_hiappevent_addfloatparam) ([ParamList](#paramlist) list, const char \*name, float num) | 添加一个float参数到参数列表中。  |
103| [ParamList](#paramlist) [OH_HiAppEvent_AddFloatArrayParam](#oh_hiappevent_addfloatarrayparam) ([ParamList](#paramlist) list, const char \*name, const float \*nums, int arrSize) | 添加一个float数组参数到参数列表中。  |
104| [ParamList](#paramlist) [OH_HiAppEvent_AddDoubleParam](#oh_hiappevent_adddoubleparam) ([ParamList](#paramlist) list, const char \*name, double num) | 添加一个double参数到参数列表中。  |
105| [ParamList](#paramlist) [OH_HiAppEvent_AddDoubleArrayParam](#oh_hiappevent_adddoublearrayparam) ([ParamList](#paramlist) list, const char \*name, const double \*nums, int arrSize) | 添加一个double数组参数到参数列表中。  |
106| [ParamList](#paramlist) [OH_HiAppEvent_AddStringParam](#oh_hiappevent_addstringparam) ([ParamList](#paramlist) list, const char \*name, const char \*str) | 添加一个字符串参数到参数列表中。  |
107| [ParamList](#paramlist) [OH_HiAppEvent_AddStringArrayParam](#oh_hiappevent_addstringarrayparam) ([ParamList](#paramlist) list, const char \*name, const char \*const \*strs, int arrSize) | 添加一个字符串数组参数到参数列表中。  |
108| int [OH_HiAppEvent_Write](#oh_hiappevent_write) (const char \*domain, const char \*name, enum [EventType](#eventtype) type, const [ParamList](#paramlist) list) | 实现对参数为列表类型的应用事件打点。  |
109| bool [OH_HiAppEvent_Configure](#oh_hiappevent_configure) (const char \*name, const char \*value) | 实现应用事件打点的配置功能。  |
110| [HiAppEvent_Watcher](#hiappevent_watcher) \* [OH_HiAppEvent_CreateWatcher](#oh_hiappevent_createwatcher) (const char \*name) | 创建一个用于监听app事件的监听器。  |
111| void [OH_HiAppEvent_DestroyWatcher](#oh_hiappevent_destroywatcher) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher) | 销毁已创建的监听器。  |
112| int [OH_HiAppEvent_SetTriggerCondition](#oh_hiappevent_settriggercondition) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher, int row, int size, int timeOut) | 用于设置监听器OH_HiAppEvent_OnTrigger回调的触发条件。<br/>分别可以从监视器新接收事件数量、新接收事件大小、onTrigger触发超时时间,设置触发条件。调用方应至少保证从一个方面设置触发条件。 |
113| int [OH_HiAppEvent_SetAppEventFilter](#oh_hiappevent_setappeventfilter) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher, const char \*domain, uint8_t eventTypes, const char \*const \*names, int namesLen) | 用于设置监听器需要监听的事件的类型。  |
114| int [OH_HiAppEvent_SetWatcherOnTrigger](#oh_hiappevent_setwatcherontrigger) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher, [OH_HiAppEvent_OnTrigger](#oh_hiappevent_ontrigger) onTrigger) | 用于设置监听器onTrigger回调的接口。<br/>如果未设置OnReceive回调或已将其设置为nullptr,则将保存观察者接收到的应用事件。当保存的应用事件满足onTrigger回调的触发条件时,将调用onTrigger回调。 |
115| int [OH_HiAppEvent_SetWatcherOnReceive](#oh_hiappevent_setwatcheronreceive) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher, [OH_HiAppEvent_OnReceive](#oh_hiappevent_onreceive) onReceive) | 用于设置监听器onReceive回调函数的接口。当监听器监听到相应事件后,onReceive回调函数将被调用。  |
116| int [OH_HiAppEvent_TakeWatcherData](#oh_hiappevent_takewatcherdata) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher, uint32_t eventNum, [OH_HiAppEvent_OnTake](#oh_hiappevent_ontake) onTake) | 用于获取监听器收到后保存的事件。  |
117| int [OH_HiAppEvent_AddWatcher](#oh_hiappevent_addwatcher) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher) | 添加监听器的接口,监听器开始监听系统消息。  |
118| int [OH_HiAppEvent_RemoveWatcher](#oh_hiappevent_removewatcher) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher) | 移除监听器的接口,监听器停止监听系统消息。  |
119| void [OH_HiAppEvent_ClearData](#oh_hiappevent_cleardata) () | 清除所有监视器保存的所有事件。  |
120| [HiAppEvent_Processor](#hiappevent_processor) \* [OH_HiAppEvent_CreateProcessor](#oh_hiappevent_createprocessor) (const char \*name) | 创建一个用于处理app事件上报的处理者。  |
121| int [OH_HiAppEvent_SetReportRoute](#oh_hiappevent_setreportroute) ([HiAppEvent_Processor](#hiappevent_processor) \*processor, const char \*appId, const char \*routeInfo) | 设置处理者事件上报路由的接口。  |
122| int [OH_HiAppEvent_SetReportPolicy](#oh_hiappevent_setreportpolicy) ([HiAppEvent_Processor](#hiappevent_processor) \*processor, int periodReport, int batchReport, bool onStartReport, bool onBackgroundReport) | 设置处理者事件上报策略的接口。  |
123| int [OH_HiAppEvent_SetReportEvent](#oh_hiappevent_setreportevent) ([HiAppEvent_Processor](#hiappevent_processor) \*processor, const char \*domain, const char \*name, bool isRealTime) | 设置处理者上报事件的接口。  |
124| int [OH_HiAppEvent_SetCustomConfig](#oh_hiappevent_setcustomconfig) ([HiAppEvent_Processor](#hiappevent_processor) \*processor, const char \*key, const char \*value) | 设置处理者自定义扩展参数的接口。  |
125| int [OH_HiAppEvent_SetConfigId](#oh_hiappevent_setconfigid) ([HiAppEvent_Processor](#hiappevent_processor) \*processor, int configId) | 设置处理者配置id的接口。  |
126| int [OH_HiAppEvent_SetReportUserId](#oh_hiappevent_setreportuserid) ([HiAppEvent_Processor](#hiappevent_processor) \*processor, const char \*const \*userIdNames, int size) | 设置处理者用户ID的接口。  |
127| int [OH_HiAppEvent_SetReportUserProperty](#oh_hiappevent_setreportuserproperty) ([HiAppEvent_Processor](#hiappevent_processor) \*processor, const char \*const \*userPropertyNames, int size) | 设置处理者用户属性的接口。  |
128| int64_t [OH_HiAppEvent_AddProcessor](#oh_hiappevent_addprocessor) ([HiAppEvent_Processor](#hiappevent_processor) \*processor) | 添加数据处理者的接口。开发者可添加数据处理者,用于提供事件上云功能。数据处理者的实现可预置在设备中,开发者可根据数据处理者的约束设置属性。  |
129| void [OH_HiAppEvent_DestroyProcessor](#oh_hiappevent_destroyprocessor) ([HiAppEvent_Processor](#hiappevent_processor) \*processor) | 销毁已创建的数据处理者。  |
130| int [OH_HiAppEvent_RemoveProcessor](#oh_hiappevent_removeprocessor) (int64_t processorId) | 移除数据处理者的接口,处理者停止上报事件。  |
131| [HiAppEvent_Config](#hiappevent_config) \* [OH_HiAppEvent_CreateConfig](#oh_hiappevent_createconfig) (void) | 创建一个指向设置系统事件触发条件的配置对象的指针。  |
132| void [OH_HiAppEvent_DestroyConfig](#oh_hiappevent_destroyconfig) ([HiAppEvent_Config](#hiappevent_config) \*config) | 销毁已创建的配置对象。  |
133| int [OH_HiAppEvent_SetConfigItem](#oh_hiappevent_setconfigitem) ([HiAppEvent_Config](#hiappevent_config) \*config, const char \*itemName, const char \*itemValue) | 设置配置对象中的配置项。  |
134| int [OH_HiAppEvent_SetEventConfig](#oh_hiappevent_seteventconfig) (const char \*name, [HiAppEvent_Config](#hiappevent_config) \*config) | 设定系统事件订阅触发条件。  |
135
136
137## 宏定义说明
138
139
140### DISABLE
141
142```
143#define DISABLE   "disable"
144```
145**描述**
146事件打点开关。默认值为false。true:关闭打点功能,false:不关闭打点功能。
147
148**起始版本:** 8
149
150
151### DOMAIN_OS
152
153```
154#define DOMAIN_OS   "OS"
155```
156**描述**
157OS作用域。
158
159**起始版本:** 12
160
161
162### EVENT_ADDRESS_SANITIZER
163
164```
165#define EVENT_ADDRESS_SANITIZER   "ADDRESS_SANITIZER"
166```
167**描述**
168应用踩内存事件。
169
170**起始版本:** 12
171
172
173### EVENT_APP_CRASH
174
175```
176#define EVENT_APP_CRASH   "APP_CRASH"
177```
178**描述**
179应用崩溃事件。
180
181**起始版本:** 12
182
183
184### EVENT_APP_FREEZE
185
186```
187#define EVENT_APP_FREEZE   "APP_FREEZE"
188```
189**描述**
190应用卡顿事件。
191
192**起始版本:** 12
193
194
195### EVENT_APP_HICOLLIE
196
197```
198#define EVENT_APP_HICOLLIE   "APP_HICOLLIE"
199```
200**描述**
201应用任务执行超时事件。
202
203**起始版本:** 18
204
205
206### EVENT_APP_LAUNCH
207
208```
209#define EVENT_APP_LAUNCH   "APP_LAUNCH"
210```
211**描述**
212应用加载事件。
213
214**起始版本:** 12
215
216
217### EVENT_BATTERY_USAGE
218
219```
220#define EVENT_BATTERY_USAGE   "BATTERY_USAGE"
221```
222**描述**
223应用电源使用率事件。
224
225**起始版本:** 12
226
227
228### EVENT_CPU_USAGE_HIGH
229
230```
231#define EVENT_CPU_USAGE_HIGH   "CPU_USAGE_HIGH"
232```
233**描述**
234应用CPU资源占用高事件。
235
236**起始版本:** 12
237
238
239### EVENT_DISTRIBUTED_SERVICE_START
240
241```
242#define EVENT_DISTRIBUTED_SERVICE_START   "hiappevent.distributed_service_start"
243```
244**描述**
245分布式服务事件。
246
247**起始版本:** 8
248
249
250### EVENT_MAIN_THREAD_JANK
251
252```
253#define EVENT_MAIN_THREAD_JANK   "MAIN_THREAD_JANK"
254```
255**描述**
256应用主线程超时事件。
257
258**起始版本:** 12
259
260
261### EVENT_RESOURCE_OVERLIMIT
262
263```
264#define EVENT_RESOURCE_OVERLIMIT   "RESOURCE_OVERLIMIT"
265```
266**描述**
267应用资源超限事件。
268
269**起始版本:** 12
270
271
272### EVENT_SCROLL_JANK
273
274```
275#define EVENT_SCROLL_JANK   "SCROLL_JANK"
276```
277**描述**
278应用滑动卡顿事件。
279
280**起始版本:** 12
281
282
283### EVENT_USER_LOGIN
284
285```
286#define EVENT_USER_LOGIN   "hiappevent.user_login"
287```
288**描述**
289用户登录事件。
290
291**起始版本:** 8
292
293
294### EVENT_USER_LOGOUT
295
296```
297#define EVENT_USER_LOGOUT   "hiappevent.user_logout"
298```
299**描述**
300用户登出事件。
301
302**起始版本:** 8
303
304
305### MAX_STORAGE
306
307```
308#define MAX_STORAGE   "max_storage"
309```
310**描述**
311事件文件目录存储配额大小。默认值为“10M”。
312
313**起始版本:** 8
314
315
316### PARAM_DISTRIBUTED_SERVICE_INSTANCE_ID
317
318```
319#define PARAM_DISTRIBUTED_SERVICE_INSTANCE_ID   "ds_instance_id"
320```
321**描述**
322分布式服务实例ID。
323
324**起始版本:** 8
325
326
327### PARAM_DISTRIBUTED_SERVICE_NAME
328
329```
330#define PARAM_DISTRIBUTED_SERVICE_NAME   "ds_name"
331```
332**描述**
333分布式服务名称。
334
335**起始版本:** 8
336
337
338### PARAM_USER_ID
339
340```
341#define PARAM_USER_ID   "user_id"
342```
343**描述**
344用户ID。
345
346**起始版本:** 8
347
348
349## 类型定义说明
350
351
352### HiAppEvent_AppEventGroup
353
354```
355typedef struct HiAppEvent_AppEventGroupHiAppEvent_AppEventGroup
356```
357**描述**
358一组事件信息,包含事件组的名称,按名称分组的单个事件信息数组,事件数组的长度。
359
360**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
361
362**起始版本:** 12
363
364
365### HiAppEvent_AppEventInfo
366
367```
368typedef struct HiAppEvent_AppEventInfoHiAppEvent_AppEventInfo
369```
370**描述**
371单个事件信息,包含事件领域,事件名称,事件类型和json格式字符串表示的事件中携带的自定义参数列表。
372
373**起始版本:** 12
374
375
376### HiAppEvent_Config
377
378```
379typedef struct HiAppEvent_ConfigHiAppEvent_Config
380```
381**描述**
382用于设置系统事件触发条件的配置对象。
383
384**起始版本:** 15
385
386
387### HiAppEvent_Processor
388
389```
390typedef struct HiAppEvent_ProcessorHiAppEvent_Processor
391```
392**描述**
393用于处理app事件上报的处理者。
394
395**起始版本:** 18
396
397
398### HiAppEvent_Watcher
399
400```
401typedef struct HiAppEvent_WatcherHiAppEvent_Watcher
402```
403**描述**
404用于接收app事件的监听器。
405
406**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
407
408**起始版本:** 12
409
410
411### OH_HiAppEvent_OnReceive
412
413```
414typedef void(* OH_HiAppEvent_OnReceive) (const char *domain, const struct HiAppEvent_AppEventGroup *appEventGroups, uint32_t groupLen)
415```
416**描述**
417监听器接收到事件后,将触发该回调,将事件内容传递给调用方。
418
419注意:回调中的指针所指对象的生命周期仅限于该回调函数内,请勿在该回调函数外直接使用该指针,若需缓存该信息,请对指针指向的内容进行深拷贝。
420
421**起始版本:** 12
422
423**参数:**
424
425| 名称 | 描述 |
426| -------- | -------- |
427| domain | 接收到的app事件的领域。  |
428| appEventGroups | 按照不同事件名称分组的事件组数组。  |
429| groupLen | 事件组数组的长度。  |
430
431
432### OH_HiAppEvent_OnTake
433
434```
435typedef void(* OH_HiAppEvent_OnTake) (const char *const *events, uint32_t eventLen)
436```
437**描述**
438使用OH_HiAppEvent_TakeWatcherData获取监听器接收到的事件时,监听器接收到的事件将通过该回调函数传递给调用者。
439
440注意:回调中的指针所指对象的生命周期仅限于该回调函数内,请勿在该回调函数外直接使用该指针。若需缓存该信息,请对指针指向的内容进行深拷贝。
441
442**起始版本:** 12
443
444**参数:**
445
446| 名称 | 描述 |
447| -------- | -------- |
448| events | json字符串格式的事件数组。  |
449| eventLen | 事件数组大小。  |
450
451
452### OH_HiAppEvent_OnTrigger
453
454```
455typedef void(* OH_HiAppEvent_OnTrigger) (int row, int size)
456```
457**描述**
458监听器收到事件后,若监听器中未设置OH_HiAppEvent_OnReceive回调,将保存该事件。
459
460当保存的事件满足通过OH_HiAppEvent_SetTriggerCondition设定的条件后,将触发该回调。回调结束后,当新保存的事件消息再次满足设定的条件后,将再次进行回调。
461
462**起始版本:** 12
463
464**参数:**
465
466| 名称 | 描述 |
467| -------- | -------- |
468| row | 监听器新接收到的事件消息的数量。  |
469| size | 监听器新接收的事件消息的大小总和(单个事件大小计算方式为:将消息转换为json字符串后,字符串的长度)。  |
470
471
472### ParamList
473
474```
475typedef struct ParamListNode* ParamList
476```
477**描述**
478事件参数列表节点。
479
480**起始版本:** 8
481
482
483## 枚举类型说明
484
485
486### EventType
487
488```
489enum EventType
490```
491**描述**
492事件类型。
493
494建议开发者根据不同的使用场景选择不同的事件类型。
495
496**起始版本:** 8
497
498| 枚举值 | 描述 |
499| -------- | -------- |
500| FAULT  | 故障事件类型。&nbsp;&nbsp; |
501| STATISTIC  | 统计事件类型。&nbsp;&nbsp; |
502| SECURITY  | 安全事件类型。&nbsp;&nbsp; |
503| BEHAVIOR  | 行为事件类型。&nbsp;&nbsp; |
504
505
506### HiAppEvent_ErrorCode
507
508```
509enum HiAppEvent_ErrorCode
510```
511**描述**
512错误码定义。
513
514**起始版本:** 15
515
516| 枚举值 | 描述 |
517| -------- | -------- |
518| HIAPPEVENT_SUCCESS  | 操作成功。&nbsp;&nbsp; |
519| HIAPPEVENT_INVALID_PARAM_VALUE_LENGTH  | 参数值长度无效。**起始版本:** 18 |
520| HIAPPEVENT_PROCESSOR_IS_NULL  | 事件处理者为空。**起始版本:** 18 |
521| HIAPPEVENT_PROCESSOR_NOT_FOUND  | 事件处理者不存在。**起始版本:** 18 |
522| HIAPPEVENT_INVALID_PARAM_VALUE  | 参数值无效。&nbsp;&nbsp; |
523| HIAPPEVENT_EVENT_CONFIG_IS_NULL  | 事件配置为空。&nbsp;&nbsp; |
524| HIAPPEVENT_OPERATE_FAILED  | 操作失败。**起始版本:** 18 |
525| HIAPPEVENT_INVALID_UID  | 无效的用户标识。**起始版本:** 18 |
526
527
528## 函数说明
529
530
531### OH_HiAppEvent_AddBoolArrayParam()
532
533```
534ParamList OH_HiAppEvent_AddBoolArrayParam (ParamList list, const char * name, const bool * booleans, int arrSize )
535```
536**描述**
537添加一个布尔数组参数到参数列表中。
538
539**起始版本:** 8
540
541**参数:**
542
543| 名称 | 描述 |
544| -------- | -------- |
545| list | 需要添加参数的参数列表指针。  |
546| name | 需要添加的参数名称。  |
547| booleans | 需要添加的布尔数组参数值。  |
548| arrSize | 需要添加的参数数组大小。  |
549
550**返回:**
551
552添加参数后的参数列表指针。
553
554
555### OH_HiAppEvent_AddBoolParam()
556
557```
558ParamList OH_HiAppEvent_AddBoolParam (ParamList list, const char * name, bool boolean )
559```
560**描述**
561添加一个布尔参数到参数列表中。
562
563**起始版本:** 8
564
565**参数:**
566
567| 名称 | 描述 |
568| -------- | -------- |
569| list | 需要添加参数的参数列表指针。  |
570| name | 需要添加的参数名称。  |
571| boolean | 需要添加的布尔参数值。  |
572
573**返回:**
574
575添加参数后的参数列表指针。
576
577
578### OH_HiAppEvent_AddDoubleArrayParam()
579
580```
581ParamList OH_HiAppEvent_AddDoubleArrayParam (ParamList list, const char * name, const double * nums, int arrSize )
582```
583**描述**
584添加一个double数组参数到参数列表中。
585
586**起始版本:** 8
587
588**参数:**
589
590| 名称 | 描述 |
591| -------- | -------- |
592| list | 需要添加参数的参数列表指针。  |
593| name | 需要添加的参数名称。  |
594| nums | 需要添加的double数组参数值。  |
595| arrSize | 需要添加的参数数组大小。  |
596
597**返回:**
598
599添加参数后的参数列表指针。
600
601
602### OH_HiAppEvent_AddDoubleParam()
603
604```
605ParamList OH_HiAppEvent_AddDoubleParam (ParamList list, const char * name, double num )
606```
607**描述**
608添加一个double参数到参数列表中。
609
610**起始版本:** 8
611
612**参数:**
613
614| 名称 | 描述 |
615| -------- | -------- |
616| list | 需要添加参数的参数列表指针。  |
617| name | 需要添加的参数名称。  |
618| num | 需要添加的double参数值。  |
619
620**返回:**
621
622添加参数后的参数列表指针。
623
624
625### OH_HiAppEvent_AddFloatArrayParam()
626
627```
628ParamList OH_HiAppEvent_AddFloatArrayParam (ParamList list, const char * name, const float * nums, int arrSize )
629```
630**描述**
631添加一个float数组参数到参数列表中。
632
633**起始版本:** 8
634
635**参数:**
636
637| 名称 | 描述 |
638| -------- | -------- |
639| list | 需要添加参数的参数列表指针。  |
640| name | 需要添加的参数名称。  |
641| nums | 需要添加的float数组参数值。  |
642| arrSize | 需要添加的参数数组大小。  |
643
644**返回:**
645
646添加参数后的参数列表指针。
647
648
649### OH_HiAppEvent_AddFloatParam()
650
651```
652ParamList OH_HiAppEvent_AddFloatParam (ParamList list, const char * name, float num )
653```
654**描述**
655添加一个float参数到参数列表中。
656
657**起始版本:** 8
658
659**参数:**
660
661| 名称 | 描述 |
662| -------- | -------- |
663| list | 需要添加参数的参数列表指针。  |
664| name | 需要添加的参数名称。  |
665| num | 需要添加的float参数值。  |
666
667**返回:**
668
669添加参数后的参数列表指针。
670
671
672### OH_HiAppEvent_AddInt16ArrayParam()
673
674```
675ParamList OH_HiAppEvent_AddInt16ArrayParam (ParamList list, const char * name, const int16_t * nums, int arrSize )
676```
677**描述**
678添加一个int16_t数组参数到参数列表中。
679
680**起始版本:** 8
681
682**参数:**
683
684| 名称 | 描述 |
685| -------- | -------- |
686| list | 需要添加参数的参数列表指针。  |
687| name | 需要添加的参数名称。  |
688| nums | 需要添加的int16_t数组参数值。  |
689| arrSize | 需要添加的参数数组大小。  |
690
691**返回:**
692
693添加参数后的参数列表指针。
694
695
696### OH_HiAppEvent_AddInt16Param()
697
698```
699ParamList OH_HiAppEvent_AddInt16Param (ParamList list, const char * name, int16_t num )
700```
701**描述**
702添加一个int16_t参数到参数列表中。
703
704**起始版本:** 8
705
706**参数:**
707
708| 名称 | 描述 |
709| -------- | -------- |
710| list | 需要添加参数的参数列表指针。  |
711| name | 需要添加的参数名称。  |
712| num | 需要添加的int16_t参数值。  |
713
714**返回:**
715
716添加参数后的参数列表指针。
717
718
719### OH_HiAppEvent_AddInt32ArrayParam()
720
721```
722ParamList OH_HiAppEvent_AddInt32ArrayParam (ParamList list, const char * name, const int32_t * nums, int arrSize )
723```
724**描述**
725添加一个int32_t数组参数到参数列表中。
726
727**起始版本:** 8
728
729**参数:**
730
731| 名称 | 描述 |
732| -------- | -------- |
733| list | 需要添加参数的参数列表指针。  |
734| name | 需要添加的参数名称。  |
735| nums | 需要添加的int32_t数组参数值。  |
736| arrSize | 需要添加的参数数组大小。  |
737
738**返回:**
739
740添加参数后的参数列表指针。
741
742
743### OH_HiAppEvent_AddInt32Param()
744
745```
746ParamList OH_HiAppEvent_AddInt32Param (ParamList list, const char * name, int32_t num )
747```
748**描述**
749添加一个int32_t参数到参数列表中。
750
751**起始版本:** 8
752
753**参数:**
754
755| 名称 | 描述 |
756| -------- | -------- |
757| list | 需要添加参数的参数列表指针。  |
758| name | 需要添加的参数名称。  |
759| num | 需要添加的int32_t参数值。  |
760
761**返回:**
762
763添加参数后的参数列表指针。
764
765
766### OH_HiAppEvent_AddInt64ArrayParam()
767
768```
769ParamList OH_HiAppEvent_AddInt64ArrayParam (ParamList list, const char * name, const int64_t * nums, int arrSize )
770```
771**描述**
772添加一个int64_t数组参数到参数列表中。
773
774**起始版本:** 8
775
776**参数:**
777
778| 名称 | 描述 |
779| -------- | -------- |
780| list | 需要添加参数的参数列表指针。  |
781| name | 需要添加的参数名称。  |
782| nums | 需要添加的int64_t数组参数值。  |
783| arrSize | 需要添加的参数数组大小。  |
784
785**返回:**
786
787添加参数后的参数列表指针。
788
789
790### OH_HiAppEvent_AddInt64Param()
791
792```
793ParamList OH_HiAppEvent_AddInt64Param (ParamList list, const char * name, int64_t num )
794```
795**描述**
796添加一个int64_t参数到参数列表中。
797
798**起始版本:** 8
799
800**参数:**
801
802| 名称 | 描述 |
803| -------- | -------- |
804| list | 需要添加参数的参数列表指针。  |
805| name | 需要添加的参数名称。  |
806| num | 需要添加的int64_t参数值。  |
807
808**返回:**
809
810添加参数后的参数列表指针。
811
812
813### OH_HiAppEvent_AddInt8ArrayParam()
814
815```
816ParamList OH_HiAppEvent_AddInt8ArrayParam (ParamList list, const char * name, const int8_t * nums, int arrSize )
817```
818**描述**
819添加一个int8_t数组参数到参数列表中。
820
821**起始版本:** 8
822
823**参数:**
824
825| 名称 | 描述 |
826| -------- | -------- |
827| list | 需要添加参数的参数列表指针。  |
828| name | 需要添加的参数名称。  |
829| nums | 需要添加的int8_t数组参数值。  |
830| arrSize | 需要添加的参数数组大小。  |
831
832**返回:**
833
834添加参数后的参数列表指针。
835
836
837### OH_HiAppEvent_AddInt8Param()
838
839```
840ParamList OH_HiAppEvent_AddInt8Param (ParamList list, const char * name, int8_t num )
841```
842**描述**
843添加一个int8_t参数到参数列表中。
844
845**起始版本:** 8
846
847**参数:**
848
849| 名称 | 描述 |
850| -------- | -------- |
851| list | 需要添加参数的参数列表指针。  |
852| name | 需要添加的参数名称。  |
853| num | 需要添加的int8_t参数值。  |
854
855**返回:**
856
857添加参数后的参数列表指针。
858
859
860### OH_HiAppEvent_AddProcessor()
861
862```
863int64_t OH_HiAppEvent_AddProcessor (HiAppEvent_Processor * processor)
864```
865**描述**
866添加数据处理者的接口。开发者可添加数据处理者,用于提供事件上云功能。数据处理者的实现可预置在设备中,开发者可根据数据处理者的约束设置属性。
867
868注意:Processor的配置信息需要由数据处理者提供,目前设备内暂未预置可供交互的数据处理者,因此当前事件上云功能不可用。
869
870**起始版本:** 18
871
872**参数:**
873
874| 名称 | 描述 |
875| -------- | -------- |
876| processor | 指向处理者的指针(即OH_HiAppEvent_CreateProcessor接口返回的指针)。  |
877
878**返回:**
879
880调用成功时返回处理者唯一ID,大于0;
881
882HIAPPEVENT_PROCESSOR_IS_NULL:processor入参为空;
883
884HIAPPEVENT_INVALID_PARAM_VALUE:参数值无效;
885
886HIAPPEVENT_OPERATE_FAILED:数据处理者名称未找到或注册失败;
887
888HIAPPEVENT_INVALID_UID:用户标识无效。
889
890具体可参考[HiAppEvent_ErrorCode](#hiappevent_errorcode)。
891
892
893### OH_HiAppEvent_AddStringArrayParam()
894
895```
896ParamList OH_HiAppEvent_AddStringArrayParam (ParamList list, const char * name, const char *const * strs, int arrSize )
897```
898**描述**
899添加一个字符串数组参数到参数列表中。
900
901**起始版本:** 8
902
903**参数:**
904
905| 名称 | 描述 |
906| -------- | -------- |
907| list | 需要添加参数的参数列表指针。  |
908| name | 需要添加的参数名称。  |
909| strs | 需要添加的字符串数组参数值。  |
910| arrSize | 需要添加的参数数组大小。  |
911
912**返回:**
913
914添加参数后的参数列表指针。
915
916
917### OH_HiAppEvent_AddStringParam()
918
919```
920ParamList OH_HiAppEvent_AddStringParam (ParamList list, const char * name, const char * str )
921```
922**描述**
923添加一个字符串参数到参数列表中。
924
925**起始版本:** 8
926
927**参数:**
928
929| 名称 | 描述 |
930| -------- | -------- |
931| list | 需要添加参数的参数列表指针。  |
932| name | 需要添加的参数名称。  |
933| str | 需要添加的字符串参数值。  |
934
935**返回:**
936
937添加参数后的参数列表指针。
938
939
940### OH_HiAppEvent_AddWatcher()
941
942```
943int OH_HiAppEvent_AddWatcher (HiAppEvent_Watcher * watcher)
944```
945**描述**
946添加监听器的接口,监听器开始监听系统消息。
947
948**起始版本:** 12
949
950**参数:**
951
952| 名称 | 描述 |
953| -------- | -------- |
954| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
955
956**返回:**
957
9580:接口调用成功;-5:watcher入参空指针。
959
960
961### OH_HiAppEvent_ClearData()
962
963```
964void OH_HiAppEvent_ClearData ()
965```
966**描述**
967清除所有监视器保存的所有事件。
968
969**起始版本:** 12
970
971
972### OH_HiAppEvent_Configure()
973
974```
975bool OH_HiAppEvent_Configure (const char * name, const char * value )
976```
977**描述**
978实现应用事件打点的配置功能。
979
980应用事件打点配置接口,用于配置事件打点开关、事件文件目录存储配额大小等功能。
981
982**起始版本:** 8
983
984**参数:**
985
986| 名称 | 描述 |
987| -------- | -------- |
988| name | 配置项名称。名称可填[DISABLE](#disable)和[MAX_STORAGE](#max_storage)。  |
989| value | 配置项值。如果配置项名称是[DISABLE](#disable),值可以填“true”或者“false”;<br/>如果配置项名称是[MAX_STORAGE](#max_storage),配额值字符串只由数字字符和大小单位字符(单位字符支持[b\|k\|kb\|m\|mb\|g\|gb\|t\|tb],不区分大小写)构成。<br/>配额值字符串必须以数字开头,后面可以选择不传单位字符(默认使用byte作为单位),或者以单位字符结尾。 |
990
991**返回:**
992
993配置结果。如果配置成功,则返回true;如果配置失败则返回false。
994
995
996### OH_HiAppEvent_CreateConfig()
997
998```
999HiAppEvent_Config* OH_HiAppEvent_CreateConfig (void )
1000```
1001**描述**
1002创建一个指向设置系统事件触发条件的配置对象的指针。
1003
1004**起始版本:** 15
1005
1006**返回:**
1007
1008指向设置系统事件触发条件的配置对象的指针。
1009
1010
1011### OH_HiAppEvent_CreateParamList()
1012
1013```
1014ParamList OH_HiAppEvent_CreateParamList (void )
1015```
1016**描述**
1017创建一个指向参数列表对象的指针。
1018
1019**起始版本:** 8
1020
1021**返回:**
1022
1023指向参数列表对象的指针。
1024
1025
1026### OH_HiAppEvent_CreateProcessor()
1027
1028```
1029HiAppEvent_Processor* OH_HiAppEvent_CreateProcessor (const char * name)
1030```
1031**描述**
1032创建一个用于处理app事件上报的处理者。
1033
1034注意:创建的处理者不再使用后必须通过调用OH_HiAppEvent_DestroyProcessor接口进行销毁。
1035
1036**起始版本:** 18
1037
1038**参数:**
1039
1040| 名称 | 描述 |
1041| -------- | -------- |
1042| name | 处理者名称。只能包含大小写字母、数字、下划线和$,不能以数字开头,长度非空且不超过256个字符。  |
1043
1044**返回:**
1045
1046接口调用成功时返回指向的新建处理者的指针,name参数异常时返回nullptr。
1047
1048
1049### OH_HiAppEvent_CreateWatcher()
1050
1051```
1052HiAppEvent_Watcher* OH_HiAppEvent_CreateWatcher (const char * name)
1053```
1054**描述**
1055创建一个用于监听app事件的监听器。
1056
1057注意:创建的监听器不再使用后必须通过调用OH_HiAppEvent_DestroyWatcher接口进行销毁。
1058
1059**起始版本:** 12
1060
1061**参数:**
1062
1063| 名称 | 描述 |
1064| -------- | -------- |
1065| name | 监听器名称。  |
1066
1067**返回:**
1068
1069接口调用成功时返回指向的新建监听器的指针,name参数异常时返回nullptr。
1070
1071
1072### OH_HiAppEvent_DestroyConfig()
1073
1074```
1075void OH_HiAppEvent_DestroyConfig (HiAppEvent_Config * config)
1076```
1077**描述**
1078销毁已创建的配置对象。
1079
1080注意:已创建的配置对象不再使用后,需要将其销毁,释放内存,防止内存泄漏,销毁后需要将对应指针置空。
1081
1082**起始版本:** 15
1083
1084**参数:**
1085
1086| 名称 | 描述 |
1087| -------- | -------- |
1088| config | 指向配置对象的指针(即OH_HiAppEvent_CreateConfig接口返回的指针)。  |
1089
1090
1091### OH_HiAppEvent_DestroyParamList()
1092
1093```
1094void OH_HiAppEvent_DestroyParamList (ParamList list)
1095```
1096**描述**
1097销毁一个指向参数列表对象的指针,释放其分配内存。
1098
1099**起始版本:** 8
1100
1101**参数:**
1102
1103| 名称 | 描述 |
1104| -------- | -------- |
1105| list | 参数列表对象指针。  |
1106
1107
1108### OH_HiAppEvent_DestroyProcessor()
1109
1110```
1111void OH_HiAppEvent_DestroyProcessor (HiAppEvent_Processor * processor)
1112```
1113**描述**
1114销毁已创建的数据处理者。
1115
1116注意:已创建的处理者不再使用后,需要将其销毁,释放内存,防止内存泄漏,销毁后需将对应指针置空。
1117
1118**起始版本:** 18
1119
1120**参数:**
1121
1122| 名称 | 描述 |
1123| -------- | -------- |
1124| processor | 指向处理者的指针(即OH_HiAppEvent_CreateProcessor接口返回的指针)。  |
1125
1126
1127### OH_HiAppEvent_DestroyWatcher()
1128
1129```
1130void OH_HiAppEvent_DestroyWatcher (HiAppEvent_Watcher * watcher)
1131```
1132**描述**
1133销毁已创建的监听器。
1134
1135注意:已创建的监听器不再使用后,需要将其销毁,释放内存,防止内存泄漏,销毁后需将对应指针置空。
1136
1137**起始版本:** 12
1138
1139**参数:**
1140
1141| 名称 | 描述 |
1142| -------- | -------- |
1143| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
1144
1145
1146### OH_HiAppEvent_RemoveProcessor()
1147
1148```
1149int OH_HiAppEvent_RemoveProcessor (int64_t processorId)
1150```
1151**描述**
1152移除数据处理者的接口,处理者停止上报事件。
1153
1154注意:该接口仅仅使处理者停止上报事件,并未销毁该处理者,该处理者依然常驻内存,直至调用OH_HiAppEvent_DestroyProcessor接口,内存才会释放。
1155
1156**起始版本:** 18
1157
1158**参数:**
1159
1160| 名称 | 描述 |
1161| -------- | -------- |
1162| processorId | 处理者唯一ID。  |
1163
1164**返回:**
1165
1166HIAPPEVENT_SUCCESS:接口调用成功;
1167
1168HIAPPEVENT_PROCESSOR_NOT_FOUND:事件处理者不存在;
1169
1170HIAPPEVENT_OPERATE_FAILED:操作失败;
1171
1172HIAPPEVENT_INVALID_UID:用户标识无效。
1173
1174具体可参考[HiAppEvent_ErrorCode](#hiappevent_errorcode)。
1175
1176
1177### OH_HiAppEvent_RemoveWatcher()
1178
1179```
1180int OH_HiAppEvent_RemoveWatcher (HiAppEvent_Watcher * watcher)
1181```
1182**描述**
1183移除监听器的接口,监听器停止监听系统消息。
1184
1185注意:该接口仅仅使监听器停止监听系统消息,并未销毁该监听器,该监听器依然常驻内存,直至调用OH_HiAppEvent_DestroyWatcher接口,内存才会释放。
1186
1187**起始版本:** 12
1188
1189**参数:**
1190
1191| 名称 | 描述 |
1192| -------- | -------- |
1193| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
1194
1195**返回:**
1196
11970:接口调用成功;-5:watcher入参空指针;-6:还未调用OH_HiAppEvent_AddWatcher,操作顺序有误。
1198
1199
1200### OH_HiAppEvent_SetAppEventFilter()
1201
1202```
1203int OH_HiAppEvent_SetAppEventFilter (HiAppEvent_Watcher * watcher, const char * domain, uint8_t eventTypes, const char *const * names, int namesLen )
1204```
1205**描述**
1206用于设置监听器需要监听的事件的类型。
1207
1208该函数可以重复调用,可添加多个过滤规则,而非替换,监听器将收到满足任一过滤规则的事件的通知。
1209
1210**起始版本:** 12
1211
1212**参数:**
1213
1214| 名称 | 描述 |
1215| -------- | -------- |
1216| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
1217| domain | 需要监听事件的领域。  |
1218| eventTypes | 需要监听事件的事件类型。使用按位与方式进行匹配,可支持监听多种类型的事件。 第一位为1(数值为1)表示支持监听故障类型的事件;<br/>第二位为1(数值为2)表示支持监听统计类型的事件;<br/>第三位为1(数值为4)表示支持监听安全类型的事件;<br/>第四位为1(数值为8)表示支持监听行为类型的事件。<br/>都为1(数值为15)或者都为0(数值为0)表示支持所有类型事件。 |
1219| names | 需要监听的事件名称数组。  |
1220| namesLen | 监听的事件名称的数组长度。  |
1221
1222**返回:**
1223
12240:接口调用成功;-1:names参数异常;-4:domain参数异常;-5:watcher入参空指针。
1225
1226
1227### OH_HiAppEvent_SetConfigId()
1228
1229```
1230int OH_HiAppEvent_SetConfigId (HiAppEvent_Processor * processor, int configId )
1231```
1232**描述**
1233设置处理者配置id的接口。
1234
1235**起始版本:** 18
1236
1237**参数:**
1238
1239| 名称 | 描述 |
1240| -------- | -------- |
1241| processor | 指向处理者的指针(即OH_HiAppEvent_CreateProcessor接口返回的指针)。  |
1242| configId | 数据处理者配置id,自然数。  |
1243
1244**返回:**
1245
1246HIAPPEVENT_SUCCESS:接口调用成功;
1247
1248HIAPPEVENT_PROCESSOR_IS_NULL:processor入参为空;
1249
1250HIAPPEVENT_INVALID_PARAM_VALUE:参数值无效;
1251
1252HIAPPEVENT_INVALID_UID:用户标识无效。
1253
1254具体可参考[HiAppEvent_ErrorCode](#hiappevent_errorcode)。
1255
1256
1257### OH_HiAppEvent_SetConfigItem()
1258
1259```
1260int OH_HiAppEvent_SetConfigItem (HiAppEvent_Config * config, const char * itemName, const char * itemValue )
1261```
1262**描述**
1263设置配置对象中的配置项。
1264
1265**起始版本:** 15
1266
1267**参数:**
1268
1269| 名称 | 描述 |
1270| -------- | -------- |
1271| config | 指向配置对象的指针(即OH_HiAppEvent_CreateConfig接口返回的指针)。  |
1272| itemName | 待设定配置项的名称。  |
1273| itemValue | 待设定配置项的值。  |
1274
1275**返回:**
1276
1277HIAPPEVENT_SUCCESS:接口调用成功;
1278
1279HIAPPEVENT_EVENT_CONFIG_IS_NULL:传入的指向配置对象的指针为空;
1280
1281HIAPPEVENT_INVALID_PARAM_VALUE:设定的配置项无效。
1282
1283具体可参考[HiAppEvent_ErrorCode](#hiappevent_errorcode)。
1284
1285
1286### OH_HiAppEvent_SetCustomConfig()
1287
1288```
1289int OH_HiAppEvent_SetCustomConfig (HiAppEvent_Processor * processor, const char * key, const char * value )
1290```
1291**描述**
1292设置处理者自定义扩展参数的接口。
1293
1294**起始版本:** 18
1295
1296**参数:**
1297
1298| 名称 | 描述 |
1299| -------- | -------- |
1300| processor | 指向处理者的指针(即OH_HiAppEvent_CreateProcessor接口返回的指针)。  |
1301| key | 参数名,长度不超过32个字符。  |
1302| value | 参数值,长度不超过1024个字符。  |
1303
1304**返回:**
1305
1306HIAPPEVENT_SUCCESS:接口调用成功;
1307
1308HIAPPEVENT_PROCESSOR_IS_NULL:processor入参为空;
1309
1310HIAPPEVENT_INVALID_PARAM_VALUE:参数值无效;
1311
1312HIAPPEVENT_INVALID_UID:用户标识无效;
1313
1314HIAPPEVENT_INVALID_PARAM_VALUE_LENGTH:参数值长度无效。
1315
1316具体可参考[HiAppEvent_ErrorCode](#hiappevent_errorcode)。
1317
1318
1319### OH_HiAppEvent_SetEventConfig()
1320
1321```
1322int OH_HiAppEvent_SetEventConfig (const char * name, HiAppEvent_Config * config )
1323```
1324**描述**
1325设定系统事件订阅触发条件。
1326
1327**起始版本:** 15
1328
1329**参数:**
1330
1331| 名称 | 描述 |
1332| -------- | -------- |
1333| name | 系统事件的名称。  |
1334| config | 指向配置对象的指针(即OH_HiAppEvent_CreateConfig接口返回的指针)。  |
1335
1336**返回:**
1337
1338HIAPPEVENT_SUCCESS:接口调用成功;
1339
1340HIAPPEVENT_INVALID_PARAM_VALUE:设置的参数无效。
1341
1342具体可参考[HiAppEvent_ErrorCode](#hiappevent_errorcode)。
1343
1344
1345### OH_HiAppEvent_SetReportEvent()
1346
1347```
1348int OH_HiAppEvent_SetReportEvent (HiAppEvent_Processor * processor, const char * domain, const char * name, bool isRealTime )
1349```
1350**描述**
1351设置处理者上报事件的接口。
1352
1353**起始版本:** 18
1354
1355**参数:**
1356
1357| 名称 | 描述 |
1358| -------- | -------- |
1359| processor | 指向处理者的指针(即OH_HiAppEvent_CreateProcessor接口返回的指针)。  |
1360| domain | 上报事件的领域。  |
1361| name | 上报事件的名称。  |
1362| isRealTime | 是否实时上报。  |
1363
1364**返回:**
1365
1366HIAPPEVENT_SUCCESS:接口调用成功;
1367
1368HIAPPEVENT_PROCESSOR_IS_NULL:processor入参为空;
1369
1370HIAPPEVENT_INVALID_PARAM_VALUE:参数值无效;
1371
1372HIAPPEVENT_INVALID_UID:用户标识无效。
1373
1374具体可参考[HiAppEvent_ErrorCode](#hiappevent_errorcode)。
1375
1376
1377### OH_HiAppEvent_SetReportPolicy()
1378
1379```
1380int OH_HiAppEvent_SetReportPolicy (HiAppEvent_Processor * processor, int periodReport, int batchReport, bool onStartReport, bool onBackgroundReport )
1381```
1382**描述**
1383设置处理者事件上报策略的接口。
1384
1385**起始版本:** 18
1386
1387**参数:**
1388
1389| 名称 | 描述 |
1390| -------- | -------- |
1391| processor | 指向处理者的指针(即OH_HiAppEvent_CreateProcessor接口返回的指针)。  |
1392| periodReport | 事件定时上报周期,单位为秒。  |
1393| batchReport | 事件上报阈值,当事件条数达到阈值时上报事件。  |
1394| onStartReport | 数据处理者在启动时是否上报事件,默认值为false。  |
1395| onBackgroundReport | 应用程序进入后台时,是否上报事件,默认值为false。  |
1396
1397**返回:**
1398
1399HIAPPEVENT_SUCCESS:接口调用成功;
1400
1401HIAPPEVENT_PROCESSOR_IS_NULL:processor入参为空;
1402
1403HIAPPEVENT_INVALID_PARAM_VALUE:参数值无效;
1404
1405HIAPPEVENT_INVALID_UID:用户标识无效。
1406
1407具体可参考[HiAppEvent_ErrorCode](#hiappevent_errorcode)。
1408
1409
1410### OH_HiAppEvent_SetReportRoute()
1411
1412```
1413int OH_HiAppEvent_SetReportRoute (HiAppEvent_Processor * processor, const char * appId, const char * routeInfo )
1414```
1415**描述**
1416设置处理者事件上报路由的接口。
1417
1418**起始版本:** 18
1419
1420**参数:**
1421
1422| 名称 | 描述 |
1423| -------- | -------- |
1424| processor | 指向处理者的指针(即OH_HiAppEvent_CreateProcessor接口返回的指针)。  |
1425| appId | 处理者的应用ID。  |
1426| routeInfo | 服务器位置信息,默认为空字符串。传入字符串长度不能超8KB,超过时会被置为默认值。  |
1427
1428**返回:**
1429
1430HIAPPEVENT_SUCCESS:接口调用成功;
1431
1432HIAPPEVENT_PROCESSOR_IS_NULL:processor入参为空;
1433
1434HIAPPEVENT_INVALID_PARAM_VALUE:参数值无效;
1435
1436HIAPPEVENT_INVALID_UID:用户标识无效;
1437
1438HIAPPEVENT_INVALID_PARAM_VALUE_LENGTH:参数值长度无效。
1439
1440具体可参考[HiAppEvent_ErrorCode](#hiappevent_errorcode)。
1441
1442
1443### OH_HiAppEvent_SetReportUserId()
1444
1445```
1446int OH_HiAppEvent_SetReportUserId (HiAppEvent_Processor * processor, const char *const * userIdNames, int size )
1447```
1448**描述**
1449设置处理者用户ID的接口。
1450
1451**起始版本:** 18
1452
1453**参数:**
1454
1455| 名称 | 描述 |
1456| -------- | -------- |
1457| processor | 指向处理者的指针(即OH_HiAppEvent_CreateProcessor接口返回的指针)。  |
1458| userIdNames | 处理者可以上报的用户ID的name数组。  |
1459| size | 用户ID的name数组长度。  |
1460
1461**返回:**
1462
1463HIAPPEVENT_SUCCESS:接口调用成功;
1464
1465HIAPPEVENT_PROCESSOR_IS_NULL:processor入参为空;
1466
1467HIAPPEVENT_INVALID_PARAM_VALUE:参数值无效;
1468
1469HIAPPEVENT_INVALID_UID:用户标识无效;
1470
1471HIAPPEVENT_INVALID_PARAM_VALUE_LENGTH:参数值长度无效。
1472
1473具体可参考[HiAppEvent_ErrorCode](#hiappevent_errorcode)。
1474
1475
1476### OH_HiAppEvent_SetReportUserProperty()
1477
1478```
1479int OH_HiAppEvent_SetReportUserProperty (HiAppEvent_Processor * processor, const char *const * userPropertyNames, int size )
1480```
1481**描述**
1482设置处理者用户属性的接口。
1483
1484**起始版本:** 18
1485
1486**参数:**
1487
1488| 名称 | 描述 |
1489| -------- | -------- |
1490| processor | 指向处理者的指针(即OH_HiAppEvent_CreateProcessor接口返回的指针)。  |
1491| userPropertyNames | 处理者可以上报的用户属性数组。  |
1492| size | 用户属性数组的长度。  |
1493
1494**返回:**
1495
1496HIAPPEVENT_SUCCESS:接口调用成功;
1497
1498HIAPPEVENT_PROCESSOR_IS_NULL:processor入参为空;
1499
1500HIAPPEVENT_INVALID_PARAM_VALUE:参数值无效;
1501
1502HIAPPEVENT_INVALID_UID:用户标识无效;
1503
1504HIAPPEVENT_INVALID_PARAM_VALUE_LENGTH:参数值长度无效。
1505
1506具体可参考[HiAppEvent_ErrorCode](#hiappevent_errorcode)。
1507
1508
1509### OH_HiAppEvent_SetTriggerCondition()
1510
1511```
1512int OH_HiAppEvent_SetTriggerCondition (HiAppEvent_Watcher * watcher, int row, int size, int timeOut )
1513```
1514**描述**
1515用于设置监听器OH_HiAppEvent_OnTrigger回调的触发条件。
1516
1517分别可以从监视器新接收事件数量、新接收事件大小、onTrigger触发超时时间,设置触发条件。调用方应至少保证从一个方面设置触发条件。
1518
1519**起始版本:** 12
1520
1521**参数:**
1522
1523| 名称 | 描述 |
1524| -------- | -------- |
1525| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
1526| row | 当输入值大于0,且新接收事件的数量大于等于该值时,将调用设置的onTrigger回调函数;<br/>当输入值小于等于0时,不再以接收数量多少为维度来触发onTrigger回调。 |
1527| size | 当输入值大于0,且新接收事件的大小(单个事件大小计算方式为,将事件转换为json字符串后,字符串的长度)大于等于该值时,将调用设置的onTrigger回调函数;<br/>当输入值小于等于0时,不再以新接收事件大小为维度触发onTrigger回调。 |
1528| timeOut | 单位秒,当输入值大于0,每经过timeout秒,将检查监视器是否存在新接收到的事件,如果存在将触发onTrigger回调。<br/>触发onTrigger后,经过timeOut秒后将再次检查是否存在新接收到的事件。<br/>当输入值小于等于0,不以超时时间为维度触发onTrigger回调。 |
1529
1530**返回:**
1531
15320:接口调用成功;-5:watcher入参空指针。
1533
1534
1535### OH_HiAppEvent_SetWatcherOnReceive()
1536
1537```
1538int OH_HiAppEvent_SetWatcherOnReceive (HiAppEvent_Watcher * watcher, OH_HiAppEvent_OnReceive onReceive )
1539```
1540**描述**
1541用于设置监听器onReceive回调函数的接口。当监听器监听到相应事件后,onReceive回调函数将被调用。
1542
1543**起始版本:** 12
1544
1545**参数:**
1546
1547| 名称 | 描述 |
1548| -------- | -------- |
1549| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
1550| onReceive | 回调函数的函数指针。  |
1551
1552**返回:**
1553
15540:接口调用成功;-5:watcher入参空指针。
1555
1556
1557### OH_HiAppEvent_SetWatcherOnTrigger()
1558
1559```
1560int OH_HiAppEvent_SetWatcherOnTrigger (HiAppEvent_Watcher * watcher, OH_HiAppEvent_OnTrigger onTrigger )
1561```
1562**描述**
1563用于设置监听器onTrigger回调的接口。
1564
1565如果未设置OnReceive回调或已将其设置为nullptr,则将保存观察者接收到的应用事件。当保存的应用事件满足onTrigger回调的触发条件时,将调用onTrigger回调。
1566
1567**起始版本:** 12
1568
1569**参数:**
1570
1571| 名称 | 描述 |
1572| -------- | -------- |
1573| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
1574| onTrigger | 需要设置的回调。  |
1575
1576**返回:**
1577
15780:接口调用成功;-5:watcher入参空指针。
1579
1580
1581### OH_HiAppEvent_TakeWatcherData()
1582
1583```
1584int OH_HiAppEvent_TakeWatcherData (HiAppEvent_Watcher * watcher, uint32_t eventNum, OH_HiAppEvent_OnTake onTake )
1585```
1586**描述**
1587用于获取监听器收到后保存的事件。
1588
1589**起始版本:** 12
1590
1591**参数:**
1592
1593| 名称 | 描述 |
1594| -------- | -------- |
1595| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
1596| eventNum | 当输入值小于等于0时,取全部已保存事件;当输入值大于0时,按照事件发生时间倒序排列,取指定数量的已保存事件。  |
1597| onTake | 回调函数指针,事件通过调用该函数返回事件信息。  |
1598
1599**返回:**
1600
16010:接口调用成功;-5:watcher入参空指针;-6:还未调用OH_HiAppEvent_AddWatcher,操作顺序有误。
1602
1603
1604### OH_HiAppEvent_Write()
1605
1606```
1607int OH_HiAppEvent_Write (const char * domain, const char * name, enum EventType type, const ParamList list )
1608```
1609**描述**
1610实现对参数为列表类型的应用事件打点。
1611
1612在应用事件打点前,该接口会先对该事件的参数进行校验。如果校验成功,则接口会将事件写入事件文件。
1613
1614**起始版本:** 8
1615
1616**参数:**
1617
1618| 名称 | 描述 |
1619| -------- | -------- |
1620| domain | 事件领域。开发者可以根据需要自定义事件领域。<br/>事件领域名称支持数字、字母、下划线字符,需要以字母开头且不能以下划线结尾,长度非空且不超过32个字符。 |
1621| name | 事件名称。开发者可以根据需要自定义事件名称。<br/>首字符必须为字母字符或$字符,中间字符必须为数字字符、字母字符或下划线字符,结尾字符必须为数字字符或字母字符,长度非空且不超过48个字符。 |
1622| type | 事件类型,在[EventType](#eventtype)中定义。  |
1623| list | 事件参数列表,每个参数由参数名和参数值组成,其规格定义如下:<br/>1、参数名为字符串类型。<br/>首字符必须为字母字符或$字符,中间字符必须为数字字符、字母字符或下划线字符,结尾字符必须为数字字符或字母字符,长度非空且不超过32个字符。<br/>2、参数值支持字符串、数值、布尔、数组类型。字符串类型参数长度需在8\*1024个字符以内,超出会做丢弃处理;<br/>数组类型参数中的元素类型只能为字符串、数值、布尔中的一种,且元素个数需在100以内,超出会做丢弃处理。<br/>3、参数个数需在32个以内,超出的参数会做丢弃处理。 |
1624
1625**返回:**
1626
1627如果事件参数校验成功,则返回0,将事件写入事件文件;
1628
1629如果事件中存在无效参数,则返回正值,丢弃无效参数后将事件写入事件文件;
1630
1631如果事件参数校验失败,则返回负值,并且事件将不会写入事件文件。
16320  事件参数校验成功。-1  非法的事件名称。-4  非法的事件领域名称。-99  打点功能被关闭。1  非法的事件参数名称。4  非法的事件参数字符串长度。5  非法的事件参数数量。6  非法的事件参数数组长度。8  重复的事件参数名称。
1633