• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# HiAppEvent
2
3
4## 概述
5
6HiAppEvent模块提供应用事件打点功能。
7
8为应用程序提供事件打点功能,记录运行过程中上报的故障事件、统计事件、安全事件和用户行为事件。基于事件信息,开发者可以分析应用的运行状态。
9
10**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
11
12**起始版本:** 8
13
14
15## 汇总
16
17
18### 文件
19
20| 名称 | 描述 |
21| -------- | -------- |
22| [hiappevent.h](hiappevent_8h.md) | HiAppEvent模块的应用事件打点函数定义。<br/>**引用文件**:<hiappevent/hiappevent.h><br/>**库**:libhiappevent_ndk.z.so |
23| [hiappevent_cfg.h](hiappevent__cfg_8h.md) | 定义事件打点配置函数的所有配置项名称。<br/>**引用文件**:<hiappevent/hiappevent_event.h><br/>**库**:libhiappevent_ndk.z.so |
24| [hiappevent_event.h](hiappevent__event_8h.md) | 定义所有预定义事件的事件名称。<br/>**引用文件**:<hiappevent/hiappevent_param.h><br/>**库**:libhiappevent_ndk.z.so |
25| [hiappevent_param.h](hiappevent__param_8h.md) | 定义所有预定义事件的参数名称。<br/>**引用文件**:<hiappevent/hiappevent_cfg.h><br/>**库**:libhiappevent_ndk.z.so |
26
27
28### 结构体
29
30| 名称 | 描述 |
31| -------- | -------- |
32| struct&nbsp;&nbsp;[HiAppEvent_AppEventInfo](_hi_app_event___app_event_info.md) | 单个事件信息,包含事件领域,事件名称,事件类型和json格式字符串表示的事件中携带的自定义参数列表。  |
33| struct&nbsp;&nbsp;[HiAppEvent_AppEventGroup](_hi_app_event___app_event_group.md) | 具有相同事件名称的事件组。  |
34
35
36### 宏定义
37
38| 名称 | 描述 |
39| -------- | -------- |
40| [DISABLE](#disable)&nbsp;&nbsp;&nbsp;"disable" | 事件打点开关。默认值为false。true:关闭打点功能,false:不关闭打点功能。  |
41| [MAX_STORAGE](#max_storage)&nbsp;&nbsp;&nbsp;"max_storage" | 事件文件目录存储配额大小。默认值为“10M”。  |
42| [EVENT_USER_LOGIN](#event_user_login)&nbsp;&nbsp;&nbsp;"hiappevent.user_login" | 用户登录事件。  |
43| [EVENT_USER_LOGOUT](#event_user_logout)&nbsp;&nbsp;&nbsp;"hiappevent.user_logout" | 用户登出事件。  |
44| [EVENT_DISTRIBUTED_SERVICE_START](#event_distributed_service_start)&nbsp;&nbsp;&nbsp;"hiappevent.distributed_service_start" | 分布式服务事件。  |
45| [EVENT_APP_CRASH](#event_app_crash)&nbsp;&nbsp;&nbsp;"APP_CRASH" | 应用崩溃事件。  |
46| [EVENT_APP_FREEZE](#event_app_freeze)&nbsp;&nbsp;&nbsp;"APP_FREEZE" | 应用卡顿事件。  |
47| [EVENT_APP_LAUNCH](#event_app_launch)&nbsp;&nbsp;&nbsp;"APP_LAUNCH" | 应用加载事件。  |
48| [EVENT_SCROLL_JANK](#event_scroll_jank)&nbsp;&nbsp;&nbsp;"SCROLL_JANK" | 应用滑动卡顿事件。  |
49| [EVENT_CPU_USAGE_HIGH](#event_cpu_usage_high)&nbsp;&nbsp;&nbsp;"CPU_USAGE_HIGH" | 应用CPU资源占用高事件。  |
50| [EVENT_BATTERY_USAGE](#event_battery_usage)&nbsp;&nbsp;&nbsp;"BATTERY_USAGE" | 应用电源使用率事件。  |
51| [EVENT_RESOURCE_OVERLIMIT](#event_resource_overlimit)&nbsp;&nbsp;&nbsp;"RESOURCE_OVERLIMIT" | 应用资源超限事件。  |
52| [DOMAIN_OS](#domain_os)&nbsp;&nbsp;&nbsp;"OS" | OS作用域。  |
53| [PARAM_USER_ID](#param_user_id)&nbsp;&nbsp;&nbsp;"user_id" | 用户ID。  |
54| [PARAM_DISTRIBUTED_SERVICE_NAME](#param_distributed_service_name)&nbsp;&nbsp;&nbsp;"ds_name" | 分布式服务名称。  |
55| [PARAM_DISTRIBUTED_SERVICE_INSTANCE_ID](#param_distributed_service_instance_id)&nbsp;&nbsp;&nbsp;"ds_instance_id" | 分布式服务实例ID。  |
56
57
58### 类型定义
59
60| 名称 | 描述 |
61| -------- | -------- |
62| typedef struct [HiAppEvent_AppEventInfo](_hi_app_event___app_event_info.md) [HiAppEvent_AppEventInfo](#hiappevent_appeventinfo) | 单个事件信息,包含事件领域,事件名称,事件类型和json格式字符串表示的事件中携带的自定义参数列表。  |
63| typedef struct [HiAppEvent_AppEventGroup](_hi_app_event___app_event_group.md) [HiAppEvent_AppEventGroup](#hiappevent_appeventgroup) | 具有相同事件名称的事件组。  |
64| typedef struct ParamListNode \* [ParamList](#paramlist) | 事件参数列表节点。  |
65| typedef struct [HiAppEvent_Watcher](#hiappevent_watcher) [HiAppEvent_Watcher](#hiappevent_watcher) | 用于接收app事件的监听器。  |
66| typedef struct [HiAppEvent_Config](#hiappevent_config) [HiAppEvent_Config](#hiappevent_config) | 用于设置系统事件触发条件的配置对象。  |
67| 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) | 监听器接收到事件后,将触发该回调,将事件内容传递给调用方。  |
68| typedef void(\* [OH_HiAppEvent_OnTrigger](#oh_hiappevent_ontrigger)) (int row, int size) | 监听器收到事件后,若监听器中未设置OH_HiAppEvent_OnReceive回调,将保存该事件。当保存的事件满足通过OH_HiAppEvent_SetTriggerCondition设定的条件后,将触发该回调。回调结束后,当新保存的事件消息再次满足设定的条件后,将再次进行回调。  |
69| typedef void(\* [OH_HiAppEvent_OnTake](#oh_hiappevent_ontake)) (const char \*const \*events, uint32_t eventLen) | 使用OH_HiAppEvent_TakeWatcherData获取监听器接收到的事件时,监听器接收到的事件将通过该回调函数传递给调用者。  |
70
71
72### 枚举
73
74| 名称 | 描述 |
75| -------- | -------- |
76| [HiAppEvent_ErrorCode](#hiappevent_errorcode) {<br/>HIAPPEVENT_SUCCESS = 0, HIAPPEVENT_INVALID_PARAM_VALUE_LENGTH = 4, HIAPPEVENT_PROCESSOR_IS_NULL = -7, HIAPPEVENT_PROCESSOR_NOT_FOUND = -8,<br/>HIAPPEVENT_INVALID_PARAM_VALUE = -9, HIAPPEVENT_EVENT_CONFIG_IS_NULL = -10, HIAPPEVENT_OPERATE_FAILED = -100, HIAPPEVENT_INVALID_UID = -200<br/>} | 错误码定义。  |
77| [EventType](#eventtype) { FAULT = 1, STATISTIC = 2, SECURITY = 3, BEHAVIOR = 4 } | 事件类型。  |
78
79
80### 函数
81
82| 名称 | 描述 |
83| -------- | -------- |
84| [ParamList](#paramlist) [OH_HiAppEvent_CreateParamList](#oh_hiappevent_createparamlist) (void) | 创建一个指向参数列表对象的指针。  |
85| void [OH_HiAppEvent_DestroyParamList](#oh_hiappevent_destroyparamlist) ([ParamList](#paramlist) list) | 销毁一个指向参数列表对象的指针,释放其分配内存。  |
86| [ParamList](#paramlist) [OH_HiAppEvent_AddBoolParam](#oh_hiappevent_addboolparam) ([ParamList](#paramlist) list, const char \*name, bool boolean) | 添加一个布尔参数到参数列表中。  |
87| [ParamList](#paramlist) [OH_HiAppEvent_AddBoolArrayParam](#oh_hiappevent_addboolarrayparam) ([ParamList](#paramlist) list, const char \*name, const bool \*booleans, int arrSize) | 添加一个布尔数组参数到参数列表中。  |
88| [ParamList](#paramlist) [OH_HiAppEvent_AddInt8Param](#oh_hiappevent_addint8param) ([ParamList](#paramlist) list, const char \*name, int8_t num) | 添加一个int8_t参数到参数列表中。  |
89| [ParamList](#paramlist) [OH_HiAppEvent_AddInt8ArrayParam](#oh_hiappevent_addint8arrayparam) ([ParamList](#paramlist) list, const char \*name, const int8_t \*nums, int arrSize) | 添加一个int8_t数组参数到参数列表中。  |
90| [ParamList](#paramlist) [OH_HiAppEvent_AddInt16Param](#oh_hiappevent_addint16param) ([ParamList](#paramlist) list, const char \*name, int16_t num) | 添加一个int16_t参数到参数列表中。  |
91| [ParamList](#paramlist) [OH_HiAppEvent_AddInt16ArrayParam](#oh_hiappevent_addint16arrayparam) ([ParamList](#paramlist) list, const char \*name, const int16_t \*nums, int arrSize) | 添加一个int16_t数组参数到参数列表中。  |
92| [ParamList](#paramlist) [OH_HiAppEvent_AddInt32Param](#oh_hiappevent_addint32param) ([ParamList](#paramlist) list, const char \*name, int32_t num) | 添加一个int32_t参数到参数列表中。  |
93| [ParamList](#paramlist) [OH_HiAppEvent_AddInt32ArrayParam](#oh_hiappevent_addint32arrayparam) ([ParamList](#paramlist) list, const char \*name, const int32_t \*nums, int arrSize) | 添加一个int32_t数组参数到参数列表中。  |
94| [ParamList](#paramlist) [OH_HiAppEvent_AddInt64Param](#oh_hiappevent_addint64param) ([ParamList](#paramlist) list, const char \*name, int64_t num) | 添加一个int64_t参数到参数列表中。  |
95| [ParamList](#paramlist) [OH_HiAppEvent_AddInt64ArrayParam](#oh_hiappevent_addint64arrayparam) ([ParamList](#paramlist) list, const char \*name, const int64_t \*nums, int arrSize) | 添加一个int64_t数组参数到参数列表中。  |
96| [ParamList](#paramlist) [OH_HiAppEvent_AddFloatParam](#oh_hiappevent_addfloatparam) ([ParamList](#paramlist) list, const char \*name, float num) | 添加一个float参数到参数列表中。  |
97| [ParamList](#paramlist) [OH_HiAppEvent_AddFloatArrayParam](#oh_hiappevent_addfloatarrayparam) ([ParamList](#paramlist) list, const char \*name, const float \*nums, int arrSize) | 添加一个float数组参数到参数列表中。  |
98| [ParamList](#paramlist) [OH_HiAppEvent_AddDoubleParam](#oh_hiappevent_adddoubleparam) ([ParamList](#paramlist) list, const char \*name, double num) | 添加一个double参数到参数列表中。  |
99| [ParamList](#paramlist) [OH_HiAppEvent_AddDoubleArrayParam](#oh_hiappevent_adddoublearrayparam) ([ParamList](#paramlist) list, const char \*name, const double \*nums, int arrSize) | 添加一个double数组参数到参数列表中。  |
100| [ParamList](#paramlist) [OH_HiAppEvent_AddStringParam](#oh_hiappevent_addstringparam) ([ParamList](#paramlist) list, const char \*name, const char \*str) | 添加一个字符串参数到参数列表中。  |
101| [ParamList](#paramlist) [OH_HiAppEvent_AddStringArrayParam](#oh_hiappevent_addstringarrayparam) ([ParamList](#paramlist) list, const char \*name, const char \*const \*strs, int arrSize) | 添加一个字符串数组参数到参数列表中。  |
102| int [OH_HiAppEvent_Write](#oh_hiappevent_write) (const char \*domain, const char \*name, enum [EventType](#eventtype) type, const [ParamList](#paramlist) list) | 实现对参数为列表类型的应用事件打点。  |
103| bool [OH_HiAppEvent_Configure](#oh_hiappevent_configure) (const char \*name, const char \*value) | 实现应用事件打点的配置功能。  |
104| [HiAppEvent_Watcher](#hiappevent_watcher) \* [OH_HiAppEvent_CreateWatcher](#oh_hiappevent_createwatcher) (const char \*name) | 创建一个用于监听app事件的监听器。  |
105| void [OH_HiAppEvent_DestroyWatcher](#oh_hiappevent_destroywatcher) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher) | 销毁已创建的监听器。  |
106| int [OH_HiAppEvent_SetTriggerCondition](#oh_hiappevent_settriggercondition) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher, int row, int size, int timeOut) | 用于设置监听器OH_HiAppEvent_OnTrigger回调的触发条件,分别可以从监视器新接收事件数量、新接收事件大小、onTrigger触发超时时间,设置触发条件。调用方应至少保证从一个方面设置触发条件。  |
107| int [OH_HiAppEvent_SetAppEventFilter](#oh_hiappevent_setappeventfilter) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher, const char \*domain, uint8_t eventTypes, const char \*const \*names, int namesLen) | 用于设置监听器需要监听的事件的类型。  |
108| int [OH_HiAppEvent_SetWatcherOnTrigger](#oh_hiappevent_setwatcherontrigger) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher, [OH_HiAppEvent_OnTrigger](#oh_hiappevent_ontrigger) onTrigger) | 用于设置监听器onTrigger回调的接口。  |
109| int [OH_HiAppEvent_SetWatcherOnReceive](#oh_hiappevent_setwatcheronreceive) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher, [OH_HiAppEvent_OnReceive](#oh_hiappevent_onreceive) onReceive) | 用于设置监听器onReceive回调函数的接口。当监听器监听到相应事件后,onReceive回调函数将被调用。  |
110| int [OH_HiAppEvent_TakeWatcherData](#oh_hiappevent_takewatcherdata) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher, uint32_t eventNum, [OH_HiAppEvent_OnTake](#oh_hiappevent_ontake) onTake) | 用于获取监听器收到后保存的事件。  |
111| int [OH_HiAppEvent_AddWatcher](#oh_hiappevent_addwatcher) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher) | 添加监听器的接口,监听器开始监听系统消息。  |
112| int [OH_HiAppEvent_RemoveWatcher](#oh_hiappevent_removewatcher) ([HiAppEvent_Watcher](#hiappevent_watcher) \*watcher) | 移除监听器的接口,监听器停止监听系统消息。  |
113| void [OH_HiAppEvent_ClearData](#oh_hiappevent_cleardata) (void) | 清除所有监视器保存的所有事件。  |
114| [HiAppEvent_Config](#hiappevent_config) \* [OH_HiAppEvent_CreateConfig](#oh_hiappevent_createconfig) (void) | 创建一个指向设置系统事件触发条件的配置对象的指针。  |
115| void [OH_HiAppEvent_DestroyConfig](#oh_hiappevent_destroyconfig) ([HiAppEvent_Config](#hiappevent_config) \*config) | 销毁已创建的配置对象。  |
116| int [OH_HiAppEvent_SetConfigItem](#oh_hiappevent_setconfigitem) ([HiAppEvent_Config](#hiappevent_config) \*config, const char \*itemName, const char \*itemValue) | 设置配置对象中的配置项。  |
117| int [OH_HiAppEvent_SetEventConfig](#oh_hiappevent_seteventconfig) (const char \*name, [HiAppEvent_Config](#hiappevent_config) \*config) | 设定系统事件订阅触发条件。  |
118
119
120## 宏定义说明
121
122
123### DISABLE
124
125```
126#define DISABLE   "disable"
127```
128**描述**
129事件打点开关。默认值为false。true:关闭打点功能,false:不关闭打点功能。
130
131**起始版本:** 8
132
133
134### DOMAIN_OS
135
136```
137#define DOMAIN_OS   "OS"
138```
139**描述**
140OS作用域。
141
142**起始版本:** 12
143
144
145### EVENT_APP_CRASH
146
147```
148#define EVENT_APP_CRASH   "APP_CRASH"
149```
150**描述**
151应用崩溃事件。
152
153**起始版本:** 12
154
155
156### EVENT_APP_FREEZE
157
158```
159#define EVENT_APP_FREEZE   "APP_FREEZE"
160```
161**描述**
162应用卡顿事件。
163
164**起始版本:** 12
165
166
167### EVENT_APP_LAUNCH
168
169```
170#define EVENT_APP_LAUNCH   "APP_LAUNCH"
171```
172**描述**
173应用加载事件。
174
175**起始版本:** 12
176
177
178### EVENT_BATTERY_USAGE
179
180```
181#define EVENT_BATTERY_USAGE   "BATTERY_USAGE"
182```
183**描述**
184应用电源使用率事件。
185
186**起始版本:** 12
187
188
189### EVENT_CPU_USAGE_HIGH
190
191```
192#define EVENT_CPU_USAGE_HIGH   "CPU_USAGE_HIGH"
193```
194**描述**
195应用CPU资源占用高事件。
196
197**起始版本:** 12
198
199
200### EVENT_DISTRIBUTED_SERVICE_START
201
202```
203#define EVENT_DISTRIBUTED_SERVICE_START   "hiappevent.distributed_service_start"
204```
205**描述**
206分布式服务事件。
207
208**起始版本:** 8
209
210
211### EVENT_RESOURCE_OVERLIMIT
212
213```
214#define EVENT_RESOURCE_OVERLIMIT   "RESOURCE_OVERLIMIT"
215```
216**描述**
217应用资源超限事件。
218
219**起始版本:** 12
220
221
222### EVENT_SCROLL_JANK
223
224```
225#define EVENT_SCROLL_JANK   "SCROLL_JANK"
226```
227**描述**
228应用滑动卡顿事件。
229
230**起始版本:** 12
231
232
233### EVENT_USER_LOGIN
234
235```
236#define EVENT_USER_LOGIN   "hiappevent.user_login"
237```
238**描述**
239用户登录事件。
240
241**起始版本:** 8
242
243
244### EVENT_USER_LOGOUT
245
246```
247#define EVENT_USER_LOGOUT   "hiappevent.user_logout"
248```
249**描述**
250用户登出事件。
251
252**起始版本:** 8
253
254
255### MAX_STORAGE
256
257```
258#define MAX_STORAGE   "max_storage"
259```
260**描述**
261事件文件目录存储配额大小。默认值为“10M”。
262
263**起始版本:** 8
264
265
266### PARAM_DISTRIBUTED_SERVICE_INSTANCE_ID
267
268```
269#define PARAM_DISTRIBUTED_SERVICE_INSTANCE_ID   "ds_instance_id"
270```
271**描述**
272分布式服务实例ID。
273
274**起始版本:** 8
275
276
277### PARAM_DISTRIBUTED_SERVICE_NAME
278
279```
280#define PARAM_DISTRIBUTED_SERVICE_NAME   "ds_name"
281```
282**描述**
283分布式服务名称。
284
285**起始版本:** 8
286
287
288### PARAM_USER_ID
289
290```
291#define PARAM_USER_ID   "user_id"
292```
293**描述**
294用户ID。
295
296**起始版本:** 8
297
298
299## 类型定义说明
300
301
302### HiAppEvent_AppEventGroup
303
304```
305typedef struct HiAppEvent_AppEventGroupHiAppEvent_AppEventGroup
306```
307**描述**
308具有相同事件名称的事件组。
309
310**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
311
312**起始版本:** 12
313
314
315### HiAppEvent_AppEventInfo
316
317```
318typedef struct HiAppEvent_AppEventInfoHiAppEvent_AppEventInfo
319```
320**描述**
321单个事件信息,包含事件领域,事件名称,事件类型和json格式字符串表示的事件中携带的自定义参数列表。
322
323**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
324
325**起始版本:** 12
326
327
328### HiAppEvent_Config
329
330```
331typedef struct HiAppEvent_ConfigHiAppEvent_Config
332```
333**描述**
334用于设置系统事件触发条件的配置对象。
335
336**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
337
338**起始版本:** 15
339
340
341### HiAppEvent_Watcher
342
343```
344typedef struct HiAppEvent_WatcherHiAppEvent_Watcher
345```
346**描述**
347用于接收app事件的监听器。
348
349**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
350
351**起始版本:** 12
352
353
354### OH_HiAppEvent_OnReceive
355
356```
357typedef void(* OH_HiAppEvent_OnReceive) (const char *domain, const struct HiAppEvent_AppEventGroup *appEventGroups, uint32_t groupLen)
358```
359**描述**
360监听器接收到事件后,将触发该回调,将事件内容传递给调用方。
361
362注意:回调中的指针所指对象的生命周期仅限于该回调函数内,请勿在该回调函数外直接使用该指针,若需缓存该信息,请对指针指向的内容进行深拷贝。
363
364**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
365
366**起始版本:** 12
367
368**参数:**
369
370| 名称 | 描述 |
371| -------- | -------- |
372| domain | 接收到的app事件的领域。  |
373| appEventGroups | 按照不同事件名称分组的事件组数组。  |
374| groupLen | 事件组数组的长度。  |
375
376
377### OH_HiAppEvent_OnTake
378
379```
380typedef void(* OH_HiAppEvent_OnTake) (const char *const *events, uint32_t eventLen)
381```
382**描述**
383使用OH_HiAppEvent_TakeWatcherData获取监听器接收到的事件时,监听器接收到的事件将通过该回调函数传递给调用者。
384
385注意:回调中的指针所指对象的生命周期仅限于该回调函数内,请勿在该回调函数外直接使用该指针。若需缓存该信息,请对指针指向的内容进行深拷贝。
386
387**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
388
389**起始版本:** 12
390
391**参数:**
392
393| 名称 | 描述 |
394| -------- | -------- |
395| events | json字符串格式的事件数组。  |
396| eventLen | 事件数组大小。  |
397
398
399### OH_HiAppEvent_OnTrigger
400
401```
402typedef void(* OH_HiAppEvent_OnTrigger) (int row, int size)
403```
404**描述**
405监听器收到事件后,若监听器中未设置OH_HiAppEvent_OnReceive回调,将保存该事件。当保存的事件满足通过OH_HiAppEvent_SetTriggerCondition设定的条件后,将触发该回调。回调结束后,当新保存的事件消息再次满足设定的条件后,将再次进行回调。
406
407**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
408
409**起始版本:** 12
410
411**参数:**
412
413| 名称 | 描述 |
414| -------- | -------- |
415| row | 监听器新接收到的事件消息的数量。  |
416| size | 监听器新接收的事件消息的大小总和(单个事件大小计算方式为:将消息转换为json字符串后,字符串的长度)。  |
417
418
419### ParamList
420
421```
422typedef struct ParamListNode* ParamList
423```
424**描述**
425事件参数列表节点。
426
427**起始版本:** 8
428
429
430## 枚举类型说明
431
432
433### EventType
434
435```
436enum EventType
437```
438**描述**
439事件类型。
440
441建议开发者根据不同的使用场景选择不同的事件类型。
442
443**起始版本:** 8
444
445| 枚举值 | 描述 |
446| -------- | -------- |
447| FAULT  | 故障事件类型。&nbsp;&nbsp; |
448| STATISTIC  | 统计事件类型。&nbsp;&nbsp; |
449| SECURITY  | 安全事件类型。&nbsp;&nbsp; |
450| BEHAVIOR  | 行为事件类型。&nbsp;&nbsp; |
451
452
453### HiAppEvent_ErrorCode
454
455```
456enum HiAppEvent_ErrorCode
457```
458**描述**
459错误码定义。
460
461**起始版本:** 15
462
463| 枚举值 | 描述 |
464| -------- | -------- |
465| HIAPPEVENT_SUCCESS  | 操作成功。&nbsp;&nbsp; |
466| HIAPPEVENT_INVALID_PARAM_VALUE_LENGTH  | 参数值长度无效。&nbsp;&nbsp; |
467| HIAPPEVENT_PROCESSOR_IS_NULL  | 事件处理者为空。&nbsp;&nbsp; |
468| HIAPPEVENT_PROCESSOR_NOT_FOUND  | 事件处理者不存在。&nbsp;&nbsp; |
469| HIAPPEVENT_INVALID_PARAM_VALUE  | 参数值无效。&nbsp;&nbsp; |
470| HIAPPEVENT_EVENT_CONFIG_IS_NULL  | 事件配置为空。&nbsp;&nbsp; |
471| HIAPPEVENT_OPERATE_FAILED  | 操作失败。&nbsp;&nbsp; |
472| HIAPPEVENT_INVALID_UID  | 用户标识为空。&nbsp;&nbsp; |
473
474
475## 函数说明
476
477
478### OH_HiAppEvent_AddBoolArrayParam()
479
480```
481ParamList OH_HiAppEvent_AddBoolArrayParam (ParamList list, const char * name, const bool * booleans, int arrSize )
482```
483**描述**
484添加一个布尔数组参数到参数列表中。
485
486**起始版本:** 8
487
488**参数:**
489
490| 名称 | 描述 |
491| -------- | -------- |
492| list | 需要添加参数的参数列表指针。  |
493| name | 需要添加的参数名称。  |
494| booleans | 需要添加的布尔数组参数值。  |
495| arrSize | 需要添加的参数数组大小。  |
496
497**返回:**
498
499添加参数后的参数列表指针。
500
501
502### OH_HiAppEvent_AddBoolParam()
503
504```
505ParamList OH_HiAppEvent_AddBoolParam (ParamList list, const char * name, bool boolean )
506```
507**描述**
508添加一个布尔参数到参数列表中。
509
510**起始版本:** 8
511
512**参数:**
513
514| 名称 | 描述 |
515| -------- | -------- |
516| list | 需要添加参数的参数列表指针。  |
517| name | 需要添加的参数名称。  |
518| boolean | 需要添加的布尔参数值。  |
519
520**返回:**
521
522添加参数后的参数列表指针。
523
524
525### OH_HiAppEvent_AddDoubleArrayParam()
526
527```
528ParamList OH_HiAppEvent_AddDoubleArrayParam (ParamList list, const char * name, const double * nums, int arrSize )
529```
530**描述**
531添加一个double数组参数到参数列表中。
532
533**起始版本:** 8
534
535**参数:**
536
537| 名称 | 描述 |
538| -------- | -------- |
539| list | 需要添加参数的参数列表指针。  |
540| name | 需要添加的参数名称。  |
541| nums | 需要添加的double数组参数值。  |
542| arrSize | 需要添加的参数数组大小。  |
543
544**返回:**
545
546添加参数后的参数列表指针。
547
548
549### OH_HiAppEvent_AddDoubleParam()
550
551```
552ParamList OH_HiAppEvent_AddDoubleParam (ParamList list, const char * name, double num )
553```
554**描述**
555添加一个double参数到参数列表中。
556
557**起始版本:** 8
558
559**参数:**
560
561| 名称 | 描述 |
562| -------- | -------- |
563| list | 需要添加参数的参数列表指针。  |
564| name | 需要添加的参数名称。  |
565| num | 需要添加的double参数值。  |
566
567**返回:**
568
569添加参数后的参数列表指针。
570
571
572### OH_HiAppEvent_AddFloatArrayParam()
573
574```
575ParamList OH_HiAppEvent_AddFloatArrayParam (ParamList list, const char * name, const float * nums, int arrSize )
576```
577**描述**
578添加一个float数组参数到参数列表中。
579
580**起始版本:** 8
581
582**参数:**
583
584| 名称 | 描述 |
585| -------- | -------- |
586| list | 需要添加参数的参数列表指针。  |
587| name | 需要添加的参数名称。  |
588| nums | 需要添加的float数组参数值。  |
589| arrSize | 需要添加的参数数组大小。  |
590
591**返回:**
592
593添加参数后的参数列表指针。
594
595
596### OH_HiAppEvent_AddFloatParam()
597
598```
599ParamList OH_HiAppEvent_AddFloatParam (ParamList list, const char * name, float num )
600```
601**描述**
602添加一个float参数到参数列表中。
603
604**起始版本:** 8
605
606**参数:**
607
608| 名称 | 描述 |
609| -------- | -------- |
610| list | 需要添加参数的参数列表指针。  |
611| name | 需要添加的参数名称。  |
612| num | 需要添加的float参数值。  |
613
614**返回:**
615
616添加参数后的参数列表指针。
617
618
619### OH_HiAppEvent_AddInt16ArrayParam()
620
621```
622ParamList OH_HiAppEvent_AddInt16ArrayParam (ParamList list, const char * name, const int16_t * nums, int arrSize )
623```
624**描述**
625添加一个int16_t数组参数到参数列表中。
626
627**起始版本:** 8
628
629**参数:**
630
631| 名称 | 描述 |
632| -------- | -------- |
633| list | 需要添加参数的参数列表指针。  |
634| name | 需要添加的参数名称。  |
635| nums | 需要添加的int16_t数组参数值。  |
636| arrSize | 需要添加的参数数组大小。  |
637
638**返回:**
639
640添加参数后的参数列表指针。
641
642
643### OH_HiAppEvent_AddInt16Param()
644
645```
646ParamList OH_HiAppEvent_AddInt16Param (ParamList list, const char * name, int16_t num )
647```
648**描述**
649添加一个int16_t参数到参数列表中。
650
651**起始版本:** 8
652
653**参数:**
654
655| 名称 | 描述 |
656| -------- | -------- |
657| list | 需要添加参数的参数列表指针。  |
658| name | 需要添加的参数名称。  |
659| num | 需要添加的int16_t参数值。  |
660
661**返回:**
662
663添加参数后的参数列表指针。
664
665
666### OH_HiAppEvent_AddInt32ArrayParam()
667
668```
669ParamList OH_HiAppEvent_AddInt32ArrayParam (ParamList list, const char * name, const int32_t * nums, int arrSize )
670```
671**描述**
672添加一个int32_t数组参数到参数列表中。
673
674**起始版本:** 8
675
676**参数:**
677
678| 名称 | 描述 |
679| -------- | -------- |
680| list | 需要添加参数的参数列表指针。  |
681| name | 需要添加的参数名称。  |
682| nums | 需要添加的int32_t数组参数值。  |
683| arrSize | 需要添加的参数数组大小。  |
684
685**返回:**
686
687添加参数后的参数列表指针。
688
689
690### OH_HiAppEvent_AddInt32Param()
691
692```
693ParamList OH_HiAppEvent_AddInt32Param (ParamList list, const char * name, int32_t num )
694```
695**描述**
696添加一个int32_t参数到参数列表中。
697
698**起始版本:** 8
699
700**参数:**
701
702| 名称 | 描述 |
703| -------- | -------- |
704| list | 需要添加参数的参数列表指针。  |
705| name | 需要添加的参数名称。  |
706| num | 需要添加的int32_t参数值。  |
707
708**返回:**
709
710添加参数后的参数列表指针。
711
712
713### OH_HiAppEvent_AddInt64ArrayParam()
714
715```
716ParamList OH_HiAppEvent_AddInt64ArrayParam (ParamList list, const char * name, const int64_t * nums, int arrSize )
717```
718**描述**
719添加一个int64_t数组参数到参数列表中。
720
721**起始版本:** 8
722
723**参数:**
724
725| 名称 | 描述 |
726| -------- | -------- |
727| list | 需要添加参数的参数列表指针。  |
728| name | 需要添加的参数名称。  |
729| nums | 需要添加的int64_t数组参数值。  |
730| arrSize | 需要添加的参数数组大小。  |
731
732**返回:**
733
734添加参数后的参数列表指针。
735
736
737### OH_HiAppEvent_AddInt64Param()
738
739```
740ParamList OH_HiAppEvent_AddInt64Param (ParamList list, const char * name, int64_t num )
741```
742**描述**
743添加一个int64_t参数到参数列表中。
744
745**起始版本:** 8
746
747**参数:**
748
749| 名称 | 描述 |
750| -------- | -------- |
751| list | 需要添加参数的参数列表指针。  |
752| name | 需要添加的参数名称。  |
753| num | 需要添加的int64_t参数值。  |
754
755**返回:**
756
757添加参数后的参数列表指针。
758
759
760### OH_HiAppEvent_AddInt8ArrayParam()
761
762```
763ParamList OH_HiAppEvent_AddInt8ArrayParam (ParamList list, const char * name, const int8_t * nums, int arrSize )
764```
765**描述**
766添加一个int8_t数组参数到参数列表中。
767
768**起始版本:** 8
769
770**参数:**
771
772| 名称 | 描述 |
773| -------- | -------- |
774| list | 需要添加参数的参数列表指针。  |
775| name | 需要添加的参数名称。  |
776| nums | 需要添加的int8_t数组参数值。  |
777| arrSize | 需要添加的参数数组大小。  |
778
779**返回:**
780
781添加参数后的参数列表指针。
782
783
784### OH_HiAppEvent_AddInt8Param()
785
786```
787ParamList OH_HiAppEvent_AddInt8Param (ParamList list, const char * name, int8_t num )
788```
789**描述**
790添加一个int8_t参数到参数列表中。
791
792**起始版本:** 8
793
794**参数:**
795
796| 名称 | 描述 |
797| -------- | -------- |
798| list | 需要添加参数的参数列表指针。  |
799| name | 需要添加的参数名称。  |
800| num | 需要添加的int8_t参数值。  |
801
802**返回:**
803
804添加参数后的参数列表指针。
805
806
807### OH_HiAppEvent_AddStringArrayParam()
808
809```
810ParamList OH_HiAppEvent_AddStringArrayParam (ParamList list, const char * name, const char *const * strs, int arrSize )
811```
812**描述**
813添加一个字符串数组参数到参数列表中。
814
815**起始版本:** 8
816
817**参数:**
818
819| 名称 | 描述 |
820| -------- | -------- |
821| list | 需要添加参数的参数列表指针。  |
822| name | 需要添加的参数名称。  |
823| strs | 需要添加的字符串数组参数值。  |
824| arrSize | 需要添加的参数数组大小。  |
825
826**返回:**
827
828添加参数后的参数列表指针。
829
830
831### OH_HiAppEvent_AddStringParam()
832
833```
834ParamList OH_HiAppEvent_AddStringParam (ParamList list, const char * name, const char * str )
835```
836**描述**
837添加一个字符串参数到参数列表中。
838
839**起始版本:** 8
840
841**参数:**
842
843| 名称 | 描述 |
844| -------- | -------- |
845| list | 需要添加参数的参数列表指针。  |
846| name | 需要添加的参数名称。  |
847| str | 需要添加的字符串参数值。  |
848
849**返回:**
850
851添加参数后的参数列表指针。
852
853
854### OH_HiAppEvent_AddWatcher()
855
856```
857int OH_HiAppEvent_AddWatcher (HiAppEvent_Watcher * watcher)
858```
859**描述**
860添加监听器的接口,监听器开始监听系统消息。
861
862**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
863
864**起始版本:** 12
865
866**参数:**
867
868| 名称 | 描述 |
869| -------- | -------- |
870| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
871
872**返回:**
873
8740:接口调用成功;-5:watcher入参空指针。
875
876
877### OH_HiAppEvent_ClearData()
878
879```
880void OH_HiAppEvent_ClearData (void )
881```
882**描述**
883清除所有监视器保存的所有事件。
884
885**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
886
887**起始版本:** 12
888
889
890### OH_HiAppEvent_Configure()
891
892```
893bool OH_HiAppEvent_Configure (const char * name, const char * value )
894```
895**描述**
896实现应用事件打点的配置功能。
897
898应用事件打点配置接口,用于配置事件打点开关、事件文件目录存储配额大小等功能。
899
900**起始版本:** 8
901
902**参数:**
903
904| 名称 | 描述 |
905| -------- | -------- |
906| name | 配置项名称。名称可填[DISABLE](#disable)和[MAX_STORAGE](#max_storage)。  |
907| value | 配置项值。如果配置项名称是[DISABLE](#disable),值可以填“true”或者“false”;如果配置项名称是[MAX_STORAGE](#max_storage),配额值字符串只由数字字符和大小单位字符(单位字符支持[b\|k\|kb\|m\|mb\|g\|gb\|t\|tb],不区分大小写)构成, 配额值字符串必须以数字开头,后面可以选择不传单位字符(默认使用byte作为单位),或者以单位字符结尾。  |
908
909**返回:**
910
911配置结果。如果配置成功,则返回true;如果配置失败则返回false。
912
913
914### OH_HiAppEvent_CreateConfig()
915
916```
917HiAppEvent_Config* OH_HiAppEvent_CreateConfig (void )
918```
919**描述**
920创建一个指向设置系统事件触发条件的配置对象的指针。
921
922**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
923
924**起始版本:** 15
925
926**返回:**
927
928指向设置系统事件触发条件的配置对象的指针。
929
930
931### OH_HiAppEvent_CreateParamList()
932
933```
934ParamList OH_HiAppEvent_CreateParamList (void )
935```
936**描述**
937创建一个指向参数列表对象的指针。
938
939**起始版本:** 8
940
941**返回:**
942
943指向参数列表对象的指针。
944
945
946### OH_HiAppEvent_CreateWatcher()
947
948```
949HiAppEvent_Watcher* OH_HiAppEvent_CreateWatcher (const char * name)
950```
951**描述**
952创建一个用于监听app事件的监听器。
953
954注意:创建的监听器不再使用后必须通过调用OH_HiAppEvent_DestroyWatcher接口进行销毁。
955
956**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
957
958**起始版本:** 12
959
960**参数:**
961
962| 名称 | 描述 |
963| -------- | -------- |
964| name | 监听器名称。  |
965
966**返回:**
967
968接口调用成功时返回指向的新建监听器的指针,name参数异常时返回nullptr。
969
970
971### OH_HiAppEvent_DestroyConfig()
972
973```
974void OH_HiAppEvent_DestroyConfig (HiAppEvent_Config * config)
975```
976**描述**
977销毁已创建的配置对象。
978
979注意:已创建的配置对象不再使用后,需要将其销毁,释放内存,防止内存泄漏,销毁后需要将对应指针置空。
980
981**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
982
983**起始版本:** 15
984
985**参数:**
986
987| 名称 | 描述 |
988| -------- | -------- |
989| config | 指向配置对象的指针(即OH_HiAppEvent_CreateConfig接口返回的指针)。  |
990
991
992### OH_HiAppEvent_DestroyParamList()
993
994```
995void OH_HiAppEvent_DestroyParamList (ParamList list)
996```
997**描述**
998销毁一个指向参数列表对象的指针,释放其分配内存。
999
1000**起始版本:** 8
1001
1002**参数:**
1003
1004| 名称 | 描述 |
1005| -------- | -------- |
1006| list | 参数列表对象指针。  |
1007
1008
1009### OH_HiAppEvent_DestroyWatcher()
1010
1011```
1012void OH_HiAppEvent_DestroyWatcher (HiAppEvent_Watcher * watcher)
1013```
1014**描述**
1015销毁已创建的监听器。
1016
1017注意:已创建的监听器不再使用后,需要将其销毁,释放内存,防止内存泄漏,销毁后需将对应指针置空。
1018
1019**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
1020
1021**起始版本:** 12
1022
1023**参数:**
1024
1025| 名称 | 描述 |
1026| -------- | -------- |
1027| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
1028
1029
1030### OH_HiAppEvent_RemoveWatcher()
1031
1032```
1033int OH_HiAppEvent_RemoveWatcher (HiAppEvent_Watcher * watcher)
1034```
1035**描述**
1036移除监听器的接口,监听器停止监听系统消息。
1037
1038注意:该接口仅仅使监听器停止监听系统消息,并未销毁该监听器,该监听器依然常驻内存,直至调用OH_HiAppEvent_DestroyWatcher接口,内存才会释放。
1039
1040**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
1041
1042**起始版本:** 12
1043
1044**参数:**
1045
1046| 名称 | 描述 |
1047| -------- | -------- |
1048| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
1049
1050**返回:**
1051
10520:接口调用成功;-5:watcher入参空指针;-6:还未调用OH_HiAppEvent_AddWatcher,操作顺序有误。
1053
1054
1055### OH_HiAppEvent_SetAppEventFilter()
1056
1057```
1058int OH_HiAppEvent_SetAppEventFilter (HiAppEvent_Watcher * watcher, const char * domain, uint8_t eventTypes, const char *const * names, int namesLen )
1059```
1060**描述**
1061用于设置监听器需要监听的事件的类型。
1062
1063该函数可以重复调用,可添加多个过滤规则,而非替换,监听器将收到满足任一过滤规则的事件的通知。
1064
1065**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
1066
1067**起始版本:** 12
1068
1069**参数:**
1070
1071| 名称 | 描述 |
1072| -------- | -------- |
1073| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
1074| domain | 需要监听事件的领域。  |
1075| eventTypes | 需要监听事件的事件类型。使用按位与方式进行匹配,可支持监听多种类型的事件。 第一位为1(数值为1)表示支持监听故障类型的事件;第二位为1(数值为2)表示支持监听统计类型的事件;<br/>第三位为1(数值为4)表示支持监听安全类型的事件;第四位为1(数值为8)表示支持监听行为类型的事件。<br/>都为1(数值为15)或者都为0(数值为0)表示支持所有类型事件。 |
1076| names | 需要监听的事件名称数组。  |
1077| namesLen | 监听的事件名称的数组长度。  |
1078
1079**返回:**
1080
10810:接口调用成功;-1:names参数异常;-4:domain参数异常;-5:watcher入参空指针。
1082
1083
1084### OH_HiAppEvent_SetConfigItem()
1085
1086```
1087int OH_HiAppEvent_SetConfigItem (HiAppEvent_Config * config, const char * itemName, const char * itemValue )
1088```
1089**描述**
1090设置配置对象中的配置项。
1091
1092**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
1093
1094**起始版本:** 15
1095
1096**参数:**
1097
1098| 名称 | 描述 |
1099| -------- | -------- |
1100| config | 指向配置对象的指针(即OH_HiAppEvent_CreateConfig接口返回的指针)。  |
1101| itemName | 待设定配置项的名称。  |
1102| itemValue | 待设定配置项的值。  |
1103
1104**返回:**
1105
11060:接口调用成功;-9:设定的配置项无效;-10:传入的指向配置对象的指针为空。
1107
1108
1109### OH_HiAppEvent_SetEventConfig()
1110
1111```
1112int OH_HiAppEvent_SetEventConfig (const char * name, HiAppEvent_Config * config )
1113```
1114**描述**
1115设定系统事件订阅触发条件。
1116
1117**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
1118
1119**起始版本:** 15
1120
1121**参数:**
1122
1123| 名称 | 描述 |
1124| -------- | -------- |
1125| name | 系统事件的名称。  |
1126| config | 指向配置对象的指针(即OH_HiAppEvent_CreateConfig接口返回的指针)。  |
1127
1128**返回:**
1129
11300:接口调用成功;-9:设置的参数无效。
1131
1132
1133### OH_HiAppEvent_SetTriggerCondition()
1134
1135```
1136int OH_HiAppEvent_SetTriggerCondition (HiAppEvent_Watcher * watcher, int row, int size, int timeOut )
1137```
1138**描述**
1139用于设置监听器OH_HiAppEvent_OnTrigger回调的触发条件,分别可以从监视器新接收事件数量、新接收事件大小、onTrigger触发超时时间,设置触发条件。调用方应至少保证从一个方面设置触发条件。
1140
1141**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
1142
1143**起始版本:** 12
1144
1145**参数:**
1146
1147| 名称 | 描述 |
1148| -------- | -------- |
1149| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
1150| row | 当输入值大于0,且新接收事件的数量大于等于该值时,将调用设置的onTrigger回调函数;当输入值小于等于0时,不再以接收数量多少为维度 来触发onTrigger回调。  |
1151| size | 当输入值大于0,且新接收事件的大小(单个事件大小计算方式为,将事件转换为json字符串后,字符串的长度)大于等于该值时,将调用设置的 onTrigger回调函数;当输入值小于等于0时,不再以新接收事件大小为维度触发onTrigger回调。  |
1152| timeOut | 单位秒,当输入值大于0,每经过timeout秒,将检查监视器是否存在新接收到的事件,如果存在将触发onTrigger回调。触发onTrigger 后,经过timeOut秒后将再次检查是否存在新接收到的事件。当输入值小于等于0,不以超时时间为维度触发onTrigger回调。  |
1153
1154**返回:**
1155
11560:接口调用成功;-5:watcher入参空指针。
1157
1158
1159### OH_HiAppEvent_SetWatcherOnReceive()
1160
1161```
1162int OH_HiAppEvent_SetWatcherOnReceive (HiAppEvent_Watcher * watcher, OH_HiAppEvent_OnReceive onReceive )
1163```
1164**描述**
1165用于设置监听器onReceive回调函数的接口。当监听器监听到相应事件后,onReceive回调函数将被调用。
1166
1167**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
1168
1169**起始版本:** 12
1170
1171**参数:**
1172
1173| 名称 | 描述 |
1174| -------- | -------- |
1175| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
1176| onReceive | 回调函数的函数指针。  |
1177
1178**返回:**
1179
11800:接口调用成功;-5:watcher入参空指针。
1181
1182
1183### OH_HiAppEvent_SetWatcherOnTrigger()
1184
1185```
1186int OH_HiAppEvent_SetWatcherOnTrigger (HiAppEvent_Watcher * watcher, OH_HiAppEvent_OnTrigger onTrigger )
1187```
1188**描述**
1189用于设置监听器onTrigger回调的接口。
1190
1191**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
1192
1193**起始版本:** 12
1194
1195**参数:**
1196
1197| 名称 | 描述 |
1198| -------- | -------- |
1199| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
1200| onTrigger | 需要设置的回调。  |
1201
1202**返回:**
1203
12040:接口调用成功;-5:watcher入参空指针。
1205
1206
1207### OH_HiAppEvent_TakeWatcherData()
1208
1209```
1210int OH_HiAppEvent_TakeWatcherData (HiAppEvent_Watcher * watcher, uint32_t eventNum, OH_HiAppEvent_OnTake onTake )
1211```
1212**描述**
1213用于获取监听器收到后保存的事件。
1214
1215**系统能力:** SystemCapability.HiviewDFX.HiAppEvent
1216
1217**起始版本:** 12
1218
1219**参数:**
1220
1221| 名称 | 描述 |
1222| -------- | -------- |
1223| watcher | 指向监听器的指针(即OH_HiAppEvent_CreateWatcher接口返回的指针)。  |
1224| eventNum | 当输入值小于等于0时,取全部已保存事件;当输入值大于0时,按照事件发生时间倒序排列,取指定数量的已保存事件。  |
1225| onTake | 回调函数指针,事件通过调用该函数返回事件信息。  |
1226
1227**返回:**
1228
12290:接口调用成功;-5:watcher入参空指针;-6:还未调用OH_HiAppEvent_AddWatcher,操作顺序有误。
1230
1231
1232### OH_HiAppEvent_Write()
1233
1234```
1235int OH_HiAppEvent_Write (const char * domain, const char * name, enum EventType type, const ParamList list )
1236```
1237**描述**
1238实现对参数为列表类型的应用事件打点。
1239
1240在应用事件打点前,该接口会先对该事件的参数进行校验。如果校验成功,则接口会将事件写入事件文件。
1241
1242**起始版本:** 8
1243
1244**参数:**
1245
1246| 名称 | 描述 |
1247| -------- | -------- |
1248| domain | 事件领域。开发者可以根据需要自定义事件领域。事件领域名称支持数字、字母、下划线字符,需要以字母开头且不能以下划线结尾,长度非空且不超过32个字符。  |
1249| name | 事件名称。开发者可以根据需要自定义事件名称。首字符必须为字母字符或$字符,中间字符必须为数字字符、 字母字符或下划线字符,结尾字符必须为数字字符或字母字符,长度非空且不超过48个字符。  |
1250| type | 事件类型,在[EventType](#eventtype)中定义。  |
1251| list | 事件参数列表,每个参数由参数名和参数值组成,其规格定义如下:<br/>1、参数名为字符串类型,首字符必须为字母字符或$字符,中间字符必须为数字字符、字母字符或下划线字符,结尾字符必须为数字字符或字母字符,长度非空且不超过32个字符。<br/>2、参数值支持字符串、数值、布尔、数组类型,字符串类型参数长度需在8\*1024个字符以内,超出会做丢弃处理;数组类型参数中的元素类型只能为字符串、数值、布尔中的一种,且元素个数需在100以内,超出会做丢弃处理。<br/>3、参数个数需在32个以内,超出的参数会做丢弃处理。 |
1252
1253**返回:**
1254
1255如果事件参数校验成功,则返回0,将事件写入事件文件;如果事件中存在无效参数,则返回正值,丢弃无效参数后将事件写入事件文件;如果事件参数校验失败,则返回负值,并且事件将不会写入事件文件。
12560  事件参数校验成功。-1  非法的事件名称。-4  非法的事件领域名称。-99  打点功能被关闭。1  非法的事件参数名称。4  非法的事件参数字符串长度。5  非法的事件参数数量。6  非法的事件参数数组长度。8  重复的事件参数名称。
1257