• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.privacyManager (隐私管理)
2
3本模块主要提供权限使用记录等隐私管理接口。
4
5> **说明:**
6> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
7> 本模块接口为系统接口。
8
9## 导入模块
10
11```js
12import privacyManager from '@ohos.privacyManager';
13```
14
15
16## privacyManager.addPermissionUsedRecord
17
18addPermissionUsedRecord(tokenID: number, permissionName: Permissions, successCount: number, failCount: number): Promise<void>
19
20受应用权限保护的应用在被其他服务、应用调用时,可以使用该接口增加一条权限使用记录。使用Promise异步回调。
21权限使用记录包括:调用方的应用身份标识、使用的应用权限名称,和其访问本应用成功、失败的次数。
22
23**需要权限:** ohos.permission.PERMISSION_USED_STATS,仅系统应用可用。
24
25**系统能力:** SystemCapability.Security.AccessToken
26
27**参数:**
28
29| 参数名   | 类型                 | 必填 | 说明                                       |
30| -------- | -------------------  | ---- | ------------------------------------------ |
31| tokenID   |  number   | 是   | 调用方的应用身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。              |
32| permissionName | Permissions | 是   | 应用权限名称。 |
33| successCount | number | 是   | 访问成功的次数。 |
34| failCount | number | 是   | 访问失败的次数。 |
35
36**返回值:**
37
38| 类型          | 说明                                |
39| :------------ | :---------------------------------- |
40| Promise<void> | Promise对象。无返回结果的Promise对象。 |
41
42**错误码:**
43
44以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
45
46| 错误码ID | 错误信息 |
47| -------- | -------- |
48| 12100001 | The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256, or the count value is invalid. |
49| 12100002 | The specified tokenID does not exist or it does not refer to an application process. |
50| 12100003 | The specified permission does not exist or it is not an user_grant permission. |
51| 12100007 | Service is abnormal. |
52| 12100008 | Out of memory. |
53
54**示例:**
55
56```js
57import privacyManager from '@ohos.privacyManager';
58
59let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
60try {
61    privacyManager.addPermissionUsedRecord(tokenID, "ohos.permission.PERMISSION_USED_STATS", 1, 0).then(() => {
62        console.log('addPermissionUsedRecord success');
63    }).catch((err) => {
64        console.log(`addPermissionUsedRecord fail, err->${JSON.stringify(err)}`);
65    });
66} catch(err) {
67    console.log(`catch err->${JSON.stringify(err)}`);
68}
69```
70
71## privacyManager.addPermissionUsedRecord
72
73addPermissionUsedRecord(tokenID: number, permissionName: Permissions, successCount: number, failCount: number, callback: AsyncCallback<void>): void
74
75受应用权限保护的应用在被其他服务、应用调用时,可以使用该接口增加一条权限使用记录。使用callback异步回调。
76权限使用记录包括:调用方的应用身份标识、使用的应用权限名称,和其访问本应用成功、失败的次数。
77
78**需要权限:** ohos.permission.PERMISSION_USED_STATS,仅系统应用可用。
79
80**系统能力:** SystemCapability.Security.AccessToken
81
82**参数:**
83
84| 参数名   | 类型                 | 必填 | 说明                                       |
85| -------- | -------------------  | ---- | ------------------------------------------ |
86| tokenID   |  number   | 是   | 调用方的应用身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。              |
87| permissionName | Permissions | 是   | 应用权限名称。 |
88| successCount | number | 是   | 访问成功的次数。 |
89| failCount | number | 是   | 访问失败的次数。 |
90| callback | AsyncCallback<void> | 是   | 回调函数。当添加使用记录成功时,err为undefine;否则为错误对象。 |
91
92**错误码:**
93
94以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
95
96| 错误码ID | 错误信息 |
97| -------- | -------- |
98| 12100001 | The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256, or the count value is invalid. |
99| 12100002 | The specified tokenID does not exist or it does not refer to an application process. |
100| 12100003 | The specified permission does not exist or it is not an user_grant permission. |
101| 12100007 | Service is abnormal. |
102| 12100008 | Out of memory. |
103
104**示例:**
105
106```js
107import privacyManager from '@ohos.privacyManager';
108
109let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
110try {
111    privacyManager.addPermissionUsedRecord(tokenID, "ohos.permission.PERMISSION_USED_STATS", 1, 0, (err, data) => {
112        if (err) {
113            console.log(`addPermissionUsedRecord fail, err->${JSON.stringify(err)}`);
114        } else {
115            console.log('addPermissionUsedRecord success');
116        }
117    });
118} catch(err) {
119    console.log(`catch err->${JSON.stringify(err)}`);
120}
121```
122
123## privacyManager.getPermissionUsedRecord
124
125getPermissionUsedRecord(request: PermissionUsedRequest): Promise<PermissionUsedResponse>
126
127获取历史权限使用记录。使用Promise异步回调。
128
129**需要权限:** ohos.permission.PERMISSION_USED_STATS,仅系统应用可用。
130
131**系统能力:** SystemCapability.Security.AccessToken
132
133**参数:**
134
135| 参数名   | 类型                 | 必填 | 说明                                       |
136| -------- | -------------------  | ---- | ------------------------------------------ |
137| request   |  [PermissionUsedRequest](#permissionusedrequest)   | 是   | 查询权限使用记录的请求。              |
138
139**返回值:**
140
141| 类型          | 说明                                |
142| :------------ | :---------------------------------- |
143| Promise<[PermissionUsedResponse](#permissionusedresponse)> | Promise对象。返回查询的权限使用记录。|
144
145**错误码:**
146
147以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
148
149| 错误码ID | 错误信息 |
150| -------- | -------- |
151| 12100001 | The parameter is invalid. the value of flag in request is invalid. |
152| 12100002 | The specified tokenID does not exist or it does not refer to an application process. |
153| 12100003 | The specified permission does not exist or it is not an user_grant permission. |
154| 12100007 | Service is abnormal. |
155| 12100008 | Out of memory. |
156
157**示例:**
158
159```js
160import privacyManager from '@ohos.privacyManager';
161
162let request = {
163    "tokenId": 1,
164    "isRemote": false,
165    "deviceId": "device",
166    "bundleName": "bundle",
167    "permissionNames": [],
168    "beginTime": 0,
169    "endTime": 1,
170    "flag":privacyManager.PermissionUsageFlag.FLAG_PERMISSION_USAGE_DETAIL,
171};
172try {
173    privacyManager.getPermissionUsedRecord(request).then((data) => {
174        console.log(`getPermissionUsedRecord success, data->${JSON.stringify(data)}`);
175    }).catch((err) => {
176        console.log(`getPermissionUsedRecord fail, err->${JSON.stringify(err)}`);
177    });
178} catch(err) {
179    console.log(`catch err->${JSON.stringify(err)}`);
180}
181```
182
183## privacyManager.getPermissionUsedRecord
184
185getPermissionUsedRecord(request: PermissionUsedRequest, callback: AsyncCallback&lt;PermissionUsedResponse&gt;): void
186
187获取历史权限使用记录。使用callback异步回调。
188
189**需要权限:** ohos.permission.PERMISSION_USED_STATS,仅系统应用可用。
190
191**系统能力:** SystemCapability.Security.AccessToken
192
193**参数:**
194
195| 参数名   | 类型                 | 必填 | 说明                                       |
196| -------- | -------------------  | ---- | ------------------------------------------ |
197| request | [PermissionUsedRequest](#permissionusedrequest) | 是 | 查询权限使用记录的请求。 |
198| callback | AsyncCallback<[PermissionUsedResponse](#permissionusedresponse)> | 是 | 回调函数。当查询记录成功时,err为undefine,data为查询到的权限使用记录;否则为错误对象。 |
199
200**错误码:**
201
202以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
203
204| 错误码ID | 错误信息 |
205| -------- | -------- |
206| 12100001 | The parameter is invalid. the value of flag in request is invalid. |
207| 12100002 | The specified tokenID does not exist or it does not refer to an application process. |
208| 12100003 | The specified permission does not exist or it is not an user_grant permission. |
209| 12100007 | Service is abnormal. |
210| 12100008 | Out of memory. |
211
212**示例:**
213
214```js
215import privacyManager from '@ohos.privacyManager';
216
217let request = {
218    "tokenId": 1,
219    "isRemote": false,
220    "deviceId": "device",
221    "bundleName": "bundle",
222    "permissionNames": [],
223    "beginTime": 0,
224    "endTime": 1,
225    "flag":privacyManager.PermissionUsageFlag.FLAG_PERMISSION_USAGE_DETAIL,
226};
227try {
228    privacyManager.getPermissionUsedRecord(request, (err, data) => {
229        if (err) {
230            console.log(`getPermissionUsedRecord fail, err->${JSON.stringify(err)}`);
231        } else {
232            console.log(`getPermissionUsedRecord success, data->${JSON.stringify(data)}`);
233        }
234    });
235} catch(err) {
236    console.log(`catch err->${JSON.stringify(err)}`);
237}
238```
239
240## privacyManager.startUsingPermission
241
242startUsingPermission(tokenID: number, permissionName: Permissions): Promise&lt;void&gt;
243
244应用开始使用某项权限,可监听应用在前后台使用权限,并将使用权限的记录落盘,由系统服务调用。使用Promise异步回调。
245
246**需要权限:** ohos.permission.PERMISSION_USED_STATS,仅系统应用可用。
247
248**系统能力:** SystemCapability.Security.AccessToken
249
250**参数:**
251
252| 参数名          | 类型   | 必填 | 说明                                  |
253| -------------- | ------ | ---- | ------------------------------------ |
254| tokenID        | number | 是   | 调用方的应用身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
255| permissionName | Permissions | 是   | 需要使用的权限名。                     |
256
257**返回值:**
258
259| 类型          | 说明                                    |
260| ------------- | --------------------------------------- |
261| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。|
262
263**错误码:**
264
265以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
266
267| 错误码ID | 错误信息 |
268| -------- | -------- |
269| 12100001 | The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256, or the count value is invalid. |
270| 12100002 | The specified tokenID does not exist or it does not refer to an application process. |
271| 12100003 | The specified permission does not exist or it is not an user_grant permission. |
272| 12100004 | The interface is called repeatedly with the same input. It means the application specified by the tokenID has been using the specified permission. |
273| 12100007 | Service is abnormal. |
274| 12100008 | Out of memory. |
275
276**示例:**
277
278```js
279import privacyManager from '@ohos.privacyManager';
280
281let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
282try {
283    privacyManager.startUsingPermission(tokenID, "ohos.permission.PERMISSION_USED_STATS").then(() => {
284        console.log('startUsingPermission success');
285    }).catch((err) => {
286        console.log(`startUsingPermission fail, err->${JSON.stringify(err)}`);
287    });
288} catch(err) {
289    console.log(`catch err->${JSON.stringify(err)}`);
290}
291```
292
293## privacyManager.startUsingPermission
294
295startUsingPermission(tokenID: number, permissionName: Permissions, callback: AsyncCallback&lt;void&gt;): void
296
297应用开始使用某项权限,可监听应用在前后台使用权限,并将使用权限的记录落盘,由系统服务调用。使用callback异步回调。
298
299**需要权限:** ohos.permission.PERMISSION_USED_STATS,仅系统应用可用。
300
301**系统能力:** SystemCapability.Security.AccessToken
302
303**参数:**
304
305| 参数名          | 类型                  | 必填 | 说明                                  |
306| -------------- | --------------------- | ---- | ------------------------------------ |
307| tokenID        | number                | 是   | 调用方的应用身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
308| permissionName | Permissions                | 是   | 需要使用的权限名。                     |
309| callback       | AsyncCallback&lt;void&gt; | 是   | 回调函数。当开始使用权限成功时,err为undefine;否则为错误对象。 |
310
311**错误码:**
312
313以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
314
315| 错误码ID | 错误信息 |
316| -------- | -------- |
317| 12100001 | The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256. |
318| 12100002 | The specified tokenID does not exist or it does not refer to an application process. |
319| 12100003 | The specified permission does not exist or it is not an user_grant permission. |
320| 12100004 | The interface is called repeatedly with the same input. It means the application specified by the tokenID has been using the specified permission. |
321| 12100007 | Service is abnormal. |
322| 12100008 | Out of memory. |
323
324**示例:**
325
326```js
327import privacyManager from '@ohos.privacyManager';
328
329let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
330try {
331    privacyManager.startUsingPermission(tokenID, "ohos.permission.PERMISSION_USED_STATS", (err, data) => {
332        if (err) {
333            console.log(`startUsingPermission fail, err->${JSON.stringify(err)}`);
334        } else {
335            console.log('startUsingPermission success');
336        }
337    });
338} catch(err) {
339    console.log(`catch err->${JSON.stringify(err)}`);
340}
341```
342
343## privacyManager.stopUsingPermission
344
345stopUsingPermission(tokenID: number, permissionName: Permissions): Promise&lt;void&gt;
346
347应用停止使用某项权限,与Start对应,由系统服务调用。使用Promise异步回调。
348
349**需要权限:** ohos.permission.PERMISSION_USED_STATS,仅系统应用可用。
350
351**系统能力:** SystemCapability.Security.AccessToken
352
353**参数:**
354
355| 参数名          | 类型   | 必填 | 说明                                  |
356| -------------- | ------ | ---- | ------------------------------------ |
357| tokenID        | number | 是   | 调用方的应用身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
358| permissionName | Permissions | 是   | 需要使用的权限名。                     |
359
360**返回值:**
361
362| 类型          | 说明                                    |
363| ------------- | --------------------------------------- |
364| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。|
365
366**错误码:**
367
368以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
369
370| 错误码ID | 错误信息 |
371| -------- | -------- |
372| 12100001 | The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256. |
373| 12100002 | The specified tokenID does not exist or it does not refer to an application process. |
374| 12100003 | The specified permission does not exist or it is not an user_grant permission. |
375| 12100004 | The interface is not used with |
376| 12100007 | Service is abnormal. |
377| 12100008 | Out of memory. |
378
379**示例:**
380
381```js
382import privacyManager from '@ohos.privacyManager';
383
384let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
385try {
386    privacyManager.stopUsingPermission(tokenID, "ohos.permission.PERMISSION_USED_STATS").then(() => {
387        console.log('stopUsingPermission success');
388    }).catch((err) => {
389        console.log(`stopUsingPermission fail, err->${JSON.stringify(err)}`);
390    });
391} catch(err) {
392    console.log(`catch err->${JSON.stringify(err)}`);
393}
394```
395
396## privacyManager.stopUsingPermission
397
398stopUsingPermission(tokenID: number, permissionName: Permissions, callback: AsyncCallback&lt;void&gt;): void
399
400应用停止使用某项权限,与Start对应,由系统服务调用。使用callback异步回调。
401
402**需要权限:** ohos.permission.PERMISSION_USED_STATS,仅系统应用可用。
403
404**系统能力:** SystemCapability.Security.AccessToken
405
406**参数:**
407
408| 参数名          | 类型                  | 必填 | 说明                                  |
409| -------------- | --------------------- | ---- | ------------------------------------ |
410| tokenID        | number                | 是   | 调用方的应用身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
411| permissionName | Permissions                | 是   | 需要使用的权限名。                      |
412| callback       | AsyncCallback&lt;void&gt; | 是   | 回调函数。当停止使用权限成功时,err为undefine;否则为错误对象。 |
413
414**错误码:**
415
416以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
417
418| 错误码ID | 错误信息 |
419| -------- | -------- |
420| 12100001 | The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256. |
421| 12100002 | The specified tokenID does not exist or it does not refer to an application process. |
422| 12100003 | The specified permission does not exist or it is not an user_grant permission. |
423| 12100004 | The interface is not used with |
424| 12100007 | Service is abnormal. |
425| 12100008 | Out of memory. |
426
427**示例:**
428
429```js
430import privacyManager from '@ohos.privacyManager';
431
432let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
433try {
434    privacyManager.stopUsingPermission(tokenID, "ohos.permission.PERMISSION_USED_STATS", (err, data) => {
435        if (err) {
436            console.log(`stopUsingPermission fail, err->${JSON.stringify(err)}`);
437        } else {
438            console.log('stopUsingPermission success');
439        }
440    });
441} catch(err) {
442    console.log(`catch err->${JSON.stringify(err)}`);
443}
444```
445
446## privacyManager.on
447
448on(type: 'activeStateChange', permissionList: Array&lt;Permissions&gt;, callback: Callback&lt;ActiveChangeResponse&gt;): void
449
450订阅指定权限列表的权限使用状态变更事件。
451
452**需要权限:** ohos.permission.PERMISSION_USED_STATS,仅系统应用可用。
453
454**系统能力:** SystemCapability.Security.AccessToken
455
456**参数:**
457
458| 参数名             | 类型                   | 必填 | 说明                                                          |
459| ------------------ | --------------------- | ---- | ------------------------------------------------------------ |
460| type               | string                | 是   | 订阅事件类型,固定为'activeStateChange',权限使用状态变更事件。   |
461| permissionList | Array&lt;Permissions&gt;   | 是   | 订阅的权限名列表,为空时表示订阅所有的权限使用状态变化。           |
462| callback | Callback&lt;[ActiveChangeResponse](#activechangeresponse)&gt; | 是 | 订阅指定权限使用状态变更事件的回调。 |
463
464**错误码:**
465
466以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
467
468| 错误码ID | 错误信息 |
469| -------- | -------- |
470| 12100001 | The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256. |
471| 12100004 | The interface is called repeatedly with the same input. |
472| 12100005 | The registration time has exceeded the limitation. |
473| 12100007 | Service is abnormal. |
474| 12100008 | Out of memory. |
475
476**示例:**
477
478```js
479import privacyManager from '@ohos.privacyManager';
480
481let permissionList = [];
482try {
483    privacyManager.on('activeStateChange', permissionList, (data) => {
484        console.debug("receive permission state change, data:" + JSON.stringify(data));
485    });
486} catch(err) {
487    console.log(`catch err->${JSON.stringify(err)}`);
488}
489```
490
491## privacyManager.off
492
493off(type: 'activeStateChange', permissionList: Array&lt;Permissions&gt;, callback?: Callback&lt;ActiveChangeResponse&gt;): void;
494
495取消订阅指定权限列表的权限使用状态变更事件。
496
497**需要权限:** ohos.permission.PERMISSION_USED_STATS,仅系统应用可用。
498
499**系统能力:** SystemCapability.Security.AccessToken
500
501**参数:**
502
503| 参数名             | 类型                   | 必填 | 说明                                                          |
504| ------------------ | --------------------- | ---- | ------------------------------------------------------------ |
505| type               | string                | 是   | 订阅事件类型,固定为'activeStateChange',权限使用状态变更事件。   |
506| permissionList | Array&lt;Permissions&gt;   | 是   | 订阅的权限名列表,为空时表示订阅所有的权限状态变化,必须与on的输入一致。 |
507| callback | Callback&lt;[ActiveChangeResponse](#activechangeresponse)&gt; | 否 | 取消订阅指定tokenId与指定权限名状态变更事件的回调。|
508
509**错误码:**
510
511以下错误码的详细介绍请参见[程序访问控制错误码](../errorcodes/errorcode-access-token.md)。
512
513| 错误码ID | 错误信息 |
514| -------- | -------- |
515| 12100001 | The parameter is invalid. The permissionName in list is all invalid or the list size is larger than 1024. |
516| 12100004 | The interface is not used together with "on"|
517| 12100007 | Service is abnormal. |
518| 12100008 | Out of memory. |
519
520**示例:**
521
522```js
523import privacyManager from '@ohos.privacyManager';
524
525let permissionList = [];
526try {
527    privacyManager.off('activeStateChange', permissionList);
528}catch(err) {
529    console.log(`catch err->${JSON.stringify(err)}`);
530}
531```
532
533## PermissionUsageFlag
534
535使用记录的查询方式的枚举。
536
537**系统能力:** SystemCapability.Security.AccessToken
538
539| 名称                    | 值 | 说明                   |
540| ----------------------- | ------ | ---------------------- |
541| FLAG_PERMISSION_USAGE_SUMMARY             | 0    | 表示查询总览数据。 |
542| FLAG_PERMISSION_USAGE_DETAIL         | 1    | 表示查询详细数据。         |
543
544## PermissionUsedRequest
545
546表示使用记录的查询请求。
547
548**系统能力:** SystemCapability.Security.AccessToken
549
550| 名称       | 类型             | 必填   | 说明                                       |
551| -------- | -------------- | ---- | ---------------------------------------- |
552| tokenId  | number         | 否    | 目标应用的身份标识。                                 |
553| isRemote | boolean         | 否    | 默认值false。 |
554| deviceId  | string         | 否    | 目标应用所在设备的ID。                                 |
555| bundleName | string         | 否    | 目标应用的包名。 |
556| permissionNames  | Array&lt;Permissions&gt;         | 否    | 需要查询的权限集合。                                 |
557| beginTime | number         | 否    | 查询的起始时间,单位:ms,默认值0,不设定起始时间。 |
558| endTime | number         | 否    | 查询的终止时间,单位:ms,默认值0,不设定终止时间。 |
559| flag | [PermissionUsageFlag](#permissionusageflag)         | 是    | 查询方式,默认值FLAG_PERMISSION_USAGE_SUMMARY。 |
560
561## PermissionUsedResponse
562
563表示所有应用的访问记录。
564
565**系统能力:** SystemCapability.Security.AccessToken
566
567| 名称       | 类型             | 必填   | 说明                                       |
568| -------- | -------------- | ---- | ---------------------------------------- |
569| beginTime | number         | 否    | 查询记录的起始时间,单位:ms。 |
570| endTime | number         | 否    | 查询记录的终止时间,单位:ms。 |
571| bundleRecords  | Array&lt;[BundleUsedRecord](#bundleusedrecord)&gt;         | 否    | 应用的权限使用记录集合。                                 |
572
573## BundleUsedRecord
574
575某个应用的访问记录。
576
577**系统能力:** SystemCapability.Security.AccessToken
578
579| 名称       | 类型             | 必填   | 说明                                       |
580| -------- | -------------- | ---- | ---------------------------------------- |
581| tokenId  | number         | 否    | 目标应用的身份标识。                                 |
582| isRemote | boolean         | 否    | 默认值false。 |
583| deviceId  | string         | 否    | 目标应用所在设备的ID。                                 |
584| bundleName | string         | 否    | 目标应用的包名。 |
585| permissionRecords  | Array&lt;[PermissionUsedRecord](#permissionusedrecord)&gt;         | 否    | 每个应用的权限使用记录集合。                                 |
586
587## PermissionUsedRecord
588
589某个权限的访问记录。
590
591**系统能力:** SystemCapability.Security.AccessToken
592
593| 名称       | 类型             | 必填   | 说明                                       |
594| -------- | -------------- | ---- | ---------------------------------------- |
595| permissionName  | Permissions         | 否    | 权限名。                                 |
596| accessCount | number         | 否    | 该权限访问总次数。 |
597| rejectCount | number         | 否    | 该权限拒绝总次数。 |
598| lastAccessTime | number         | 否    | 最后一次访问时间,单位:ms。 |
599| lastRejectTime | number         | 否    | 最后一次拒绝时间,单位:ms。 |
600| lastAccessDuration | number         | 否    | 最后一次访问时长,单位:ms。 |
601| accessRecords  | Array&lt;[UsedRecordDetail](#usedrecorddetail)&gt;         | 否    | 访问记录集合,当flag为FLAG_PERMISSION_USAGE_SUMMARY时生效,默认查询10条。                                 |
602| rejectRecords  | Array&lt;[UsedRecordDetail](#usedrecorddetail)&gt;         | 否    | 拒绝记录集合,当flag为FLAG_PERMISSION_USAGE_SUMMARY时生效,默认查询10条。                                 |
603
604## UsedRecordDetail
605
606单次访问记录详情。
607
608**系统能力:** SystemCapability.Security.AccessToken
609
610| 名称       | 类型             | 必填   | 说明                                       |
611| -------- | -------------- | ---- | ---------------------------------------- |
612| status  | number         | 否    | 访问状态。                                 |
613| timestamp | number         | 否    | 访问时的时间戳,单位:ms。 |
614| accessDuration  | number         | 否    | 访问时长,单位:ms。                                 |
615
616## PermissionActiveStatus
617
618表示权限使用状态变化类型的枚举。
619
620**系统能力:** SystemCapability.Security.AccessToken
621
622| 名称                      | 值     | 说明              |
623| ------------------------- | ------ | ---------------- |
624| PERM_INACTIVE             | 0      | 表示未使用权限。   |
625| PERM_ACTIVE_IN_FOREGROUND | 1      | 表示前台使用权限。 |
626| PERM_ACTIVE_IN_BACKGROUND | 2      | 表示后台使用权限。 |
627
628## ActiveChangeResponse
629
630表示某次权限使用状态变化的详情。
631
632 **系统能力:** SystemCapability.Security.AccessToken
633
634| 名称           | 类型                    | 可读 | 可写 | 说明                   |
635| -------------- | ---------------------- | ---- | ---- | --------------------- |
636| tokenId        | number                 | 是   | 否   | 被订阅的应用身份标识    |
637| permissionName | Permissions                 | 是   | 否   | 权限使用状态发生变化的权限名 |
638| deviceId       | string                 | 是   | 否   | 设备号                 |
639| activeStatus   | [PermissionActiveStatus](#permissionactivestatus) | 是   | 否   | 权限使用状态变化类型        |
640