• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# \@ohos.dlpPermission (数据防泄漏)
2
3数据防泄漏(DLP)是OpenHarmony提供的系统级的数据防泄漏解决方案,提供跨设备的文件的权限管理、加密存储、授权访问等能力。
4
5> **说明:**
6>
7> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```ts
12import dlpPermission from '@ohos.dlpPermission';
13```
14
15## dlpPermission.isDLPFile
16
17isDLPFile(fd: number): Promise<boolean>
18
19根据文件的fd,查询该文件是否是DLP文件,使用Promise方式异步返回结果。
20
21**系统能力:** SystemCapability.Security.DataLossPrevention
22
23**参数:**
24
25| 参数名 | 类型 | 必填 | 说明 |
26| -------- | -------- | -------- | -------- |
27| fd | number | 是 | 文件的fd(file descriptor, 文件描述符)。 |
28
29**返回值:**
30| 类型 | 说明 |
31| -------- | -------- |
32| Promise<boolean> | Promise对象。返回true表示是DLP文件,返回false表示非DLP文件。 |
33
34**错误码:**
35
36以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
37
38| 错误码ID | 错误信息 |
39| -------- | -------- |
40| 401 | Parameter error. |
41| 19100001 | Invalid parameter value. |
42| 19100011 | System service exception. |
43
44**示例:**
45
46```ts
47import dlpPermission from '@ohos.dlpPermission';
48import fs from '@ohos.file.fs';
49import { BusinessError } from '@ohos.base';
50
51let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
52let file = fs.openSync(uri);
53try {
54  let res = dlpPermission.isDLPFile(file.fd); // 是否加密DLP文件
55  console.info('res', res);
56} catch (err) {
57  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
58}
59fs.closeSync(file);
60```
61
62## dlpPermission.isDLPFile
63
64isDLPFile(fd: number, callback: AsyncCallback<boolean>): void
65
66根据文件的fd,查询该文件是否是DLP文件,使用callback方式异步返回结果。
67
68**系统能力:** SystemCapability.Security.DataLossPrevention
69
70**参数:**
71
72| 参数名 | 类型 | 必填 | 说明 |
73| -------- | -------- | -------- | -------- |
74| fd | number | 是 | 文件的fd。 |
75| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示是DLP文件,返回false表示非DLP文件。 |
76
77**错误码:**
78
79以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
80
81| 错误码ID | 错误信息 |
82| -------- | -------- |
83| 401 | Parameter error. |
84| 19100001 | Invalid parameter value. |
85| 19100011 | System service exception. |
86
87**示例:**
88
89```ts
90import dlpPermission from '@ohos.dlpPermission';
91import fs from '@ohos.file.fs';
92import { BusinessError } from '@ohos.base';
93
94let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
95let file = fs.openSync(uri);
96try {
97  dlpPermission.isDLPFile(file.fd, (err, res) => {
98    if (err != undefined) {
99      console.error('isDLPFile error,', err.code, err.message);
100    } else {
101      console.info('res', res);
102    }
103    fs.closeSync(file);
104  });
105} catch (err) {
106  console.error('isDLPFile error,', (err as BusinessError).code, (err as BusinessError).message);
107  fs.closeSync(file);
108}
109```
110
111## dlpPermission.getDLPPermissionInfo
112
113getDLPPermissionInfo(): Promise<DLPPermissionInfo>
114
115查询当前DLP沙箱的权限信息。使用Promise方式异步返回结果。
116
117**系统能力:** SystemCapability.Security.DataLossPrevention
118
119**返回值:**
120
121| 类型 | 说明 |
122| -------- | -------- |
123| Promise<[DLPPermissionInfo](#dlppermissioninfo)> | Promise对象。返回查询的DLP文件的权限信息,无异常则表明查询成功。 |
124
125**错误码:**
126
127以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
128
129| 错误码ID | 错误信息 |
130| -------- | -------- |
131| 19100001 | Invalid parameter value. |
132| 19100006 | No permission to invoke this API, which is for DLP sandbox application. |
133| 19100011 | System service exception. |
134
135**示例:**
136
137```ts
138import dlpPermission from '@ohos.dlpPermission';
139import { BusinessError } from '@ohos.base';
140
141try {
142  let inSandbox = dlpPermission.isInSandbox(); // 是否在沙箱内
143  if (inSandbox) {
144    let res: Promise<dlpPermission.DLPPermissionInfo> = dlpPermission.getDLPPermissionInfo(); // 获取当前权限信息
145    console.info('res', JSON.stringify(res));
146  }
147} catch (err) {
148  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
149}
150```
151
152## dlpPermission.getDLPPermissionInfo
153
154getDLPPermissionInfo(callback: AsyncCallback&lt;DLPPermissionInfo&gt;): void
155
156查询当前DLP沙箱的权限信息。使用callback方式异步返回结果。
157
158**系统能力:** SystemCapability.Security.DataLossPrevention
159
160**参数:**
161
162| 参数名 | 类型 | 必填 | 说明 |
163| -------- | -------- | -------- | -------- |
164| callback | AsyncCallback&lt;[DLPPermissionInfo](#dlppermissioninfo)&gt; | 是 | 回调函数。err为undefine时表示查询成功;否则为错误对象。 |
165
166**错误码:**
167
168以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
169
170| 错误码ID | 错误信息 |
171| -------- | -------- |
172| 401 | Parameter error. |
173| 19100001 | Invalid parameter value. |
174| 19100006 | No permission to invoke this API, which is for DLP sandbox application. |
175| 19100011 | System service exception. |
176
177**示例:**
178
179```ts
180import dlpPermission from '@ohos.dlpPermission';
181import fs from '@ohos.file.fs';
182import { BusinessError } from '@ohos.base';
183
184try {
185  let inSandbox = dlpPermission.isInSandbox(); // 是否在沙箱内
186  if (inSandbox) {
187    dlpPermission.getDLPPermissionInfo((err, res) => {
188      if (err != undefined) {
189        console.error('getDLPPermissionInfo error,', err.code, err.message);
190      } else {
191        console.info('res', JSON.stringify(res));
192      }
193    }); // 获取当前权限信息
194  }
195} catch (err) {
196  console.error('getDLPPermissionInfo error,', (err as BusinessError).code, (err as BusinessError).message);
197}
198```
199
200## dlpPermission.getOriginalFileName
201
202getOriginalFileName(fileName: string): string
203
204获取指定DLP文件名的原始文件名。接口为同步接口。
205
206**系统能力:** SystemCapability.Security.DataLossPrevention
207
208**参数:**
209
210| 参数名 | 类型 | 必填 | 说明 |
211| -------- | -------- | -------- | -------- |
212| fileName | string | 是 | 指定要查询的文件名。 |
213
214**返回值:**
215
216| 类型 | 说明 |
217| -------- | -------- |
218| string | 返回DLP文件的原始文件名。例如:DLP文件名为test.txt.dlp,则返回的原始文件名为test.txt。 |
219
220**错误码:**
221
222以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
223
224| 错误码ID | 错误信息 |
225| -------- | -------- |
226| 19100001 | Invalid parameter value. |
227| 19100011 | System service exception. |
228
229**示例:**
230
231```ts
232import dlpPermission from '@ohos.dlpPermission';
233import { BusinessError } from '@ohos.base';
234
235try {
236  let res = dlpPermission.getOriginalFileName('test.txt.dlp'); // 获取原始文件名
237  console.info('res', res);
238} catch (err) {
239  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
240}
241```
242
243## dlpPermission.getDLPSuffix
244
245getDLPSuffix(): string
246
247获取DLP文件扩展名。接口为同步接口。
248
249**系统能力:** SystemCapability.Security.DataLossPrevention
250
251**返回值:**
252
253| 类型 | 说明 |
254| -------- | -------- |
255| string | 返回DLP文件扩展名。例如:原文件"text.txt",返回拓展名为".dlp",加密后的DLP文件名为"test.txt.dlp"。 |
256
257**错误码:**
258
259以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
260
261| 错误码ID | 错误信息 |
262| -------- | -------- |
263| 19100011 | System service exception. |
264
265**示例:**
266
267```ts
268import dlpPermission from '@ohos.dlpPermission';
269import { BusinessError } from '@ohos.base';
270
271try {
272  let res = dlpPermission.getDLPSuffix(); // 获取DLP拓展名
273  console.info('res', res);
274} catch (err) {
275  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
276}
277```
278
279## dlpPermission.on('openDLPFile')
280
281on(type: 'openDLPFile', listener: Callback&lt;AccessedDLPFileInfo&gt;): void
282
283监听打开DLP文件。在当前应用的沙箱应用打开DLP文件时,通知当前应用。
284
285**系统能力:** SystemCapability.Security.DataLossPrevention
286
287**参数:**
288
289| 参数名 | 类型 | 必填 | 说明 |
290| -------- | -------- | -------- | -------- |
291| type | 'openDLPFile' | 是 | 监听事件类型。固定值为'openDLPFile':打开DLP文件事件。 |
292| listener | Callback&lt;[AccessedDLPFileInfo](#accesseddlpfileinfo)&gt; | 是 | DLP文件打开事件的回调。在当前应用的沙箱应用打开DLP文件时,通知当前应用。 |
293
294**错误码:**
295
296以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
297
298| 错误码ID | 错误信息 |
299| -------- | -------- |
300| 401 | Parameter error. |
301| 19100001 | Invalid parameter value. |
302| 19100007 | No permission to invoke this API, which is not for DLP sandbox application. |
303| 19100011 | System service exception. |
304
305**示例:**
306
307```ts
308import dlpPermission from '@ohos.dlpPermission';
309import { BusinessError } from '@ohos.base';
310
311try {
312  dlpPermission.on('openDLPFile', (info: dlpPermission.AccessedDLPFileInfo) => {
313    console.info('openDlpFile event', info.uri, info.lastOpenTime)
314  }); // 订阅
315} catch (err) {
316  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
317}
318```
319
320## dlpPermission.off('openDLPFile')
321
322off(type: 'openDLPFile', listener?: Callback&lt;AccessedDLPFileInfo&gt;): void
323
324取消监听打开DLP文件。在当前应用的沙箱应用打开DLP文件时,取消通知当前应用。
325
326**系统能力:** SystemCapability.Security.DataLossPrevention
327
328**参数:**
329| 参数名 | 类型 | 必填 | 说明 |
330| -------- | -------- | -------- | -------- |
331| type | 'openDLPFile' | 是 | 监听事件类型。固定值为'openDLPFile':打开DLP文件事件。 |
332| listener | Callback&lt;[AccessedDLPFileInfo](#accesseddlpfileinfo)&gt; | 否 | DLP文件被打开的事件的回调。在当前应用的沙箱应用打开DLP文件时,取消通知当前应用。默认为空,表示取消该类型事件的所有回调。 |
333
334**错误码:**
335
336以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
337
338| 错误码ID | 错误信息 |
339| -------- | -------- |
340| 401 | Parameter error. |
341| 19100001 | Invalid parameter value. |
342| 19100007 | No permission to invoke this API, which is not for DLP sandbox application. |
343| 19100011 | System service exception. |
344
345**示例:**
346
347```ts
348import dlpPermission from '@ohos.dlpPermission';
349import { BusinessError } from '@ohos.base';
350
351try {
352  dlpPermission.off('openDLPFile', (info: dlpPermission.AccessedDLPFileInfo) => {
353    console.info('openDlpFile event', info.uri, info.lastOpenTime)
354  }); // 取消订阅
355} catch (err) {
356  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
357}
358```
359
360## dlpPermission.isInSandbox
361
362isInSandbox(): Promise&lt;boolean&gt;
363
364查询当前应用是否运行在DLP沙箱环境。使用Promise方式异步返回结果。
365
366**系统能力:** SystemCapability.Security.DataLossPrevention
367
368**返回值:**
369
370| 类型 | 说明 |
371| -------- | -------- |
372| Promise&lt;boolean&gt; | Promise对象。返回当前应用是否运行在沙箱中。 |
373
374**错误码:**
375
376以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
377
378| 错误码ID | 错误信息 |
379| -------- | -------- |
380| 19100001 | Invalid parameter value. |
381| 19100011 | System service exception. |
382
383**示例:**
384
385```ts
386import dlpPermission from '@ohos.dlpPermission';
387import { BusinessError } from '@ohos.base';
388
389try {
390  let inSandbox = dlpPermission.isInSandbox(); // 是否在沙箱内
391  console.info('res', inSandbox);
392} catch (err) {
393  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
394}
395```
396
397## dlpPermission.isInSandbox
398
399isInSandbox(callback: AsyncCallback&lt;boolean&gt;): void
400
401查询当前应用是否运行在DLP沙箱环境。使用callback方式异步返回结果。
402
403**系统能力:** SystemCapability.Security.DataLossPrevention
404
405**参数:**
406
407| 参数名 | 类型 | 必填 | 说明 |
408| -------- | -------- | -------- | -------- |
409| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。err为undefine时表示查询成功;否则为错误对象。 |
410
411**错误码:**
412
413以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
414
415| 错误码ID | 错误信息 |
416| -------- | -------- |
417| 401 | Parameter error. |
418| 19100001 | Invalid parameter value. |
419| 19100011 | System service exception. |
420
421**示例:**
422
423```ts
424import dlpPermission from '@ohos.dlpPermission';
425import { BusinessError } from '@ohos.base';
426
427try {
428  dlpPermission.isInSandbox((err, data) => {
429    if (err) {
430      console.error('isInSandbox error,', err.code, err.message);
431    } else {
432      console.info('isInSandbox, data', JSON.stringify(data));
433    }
434  }); // 是否在沙箱内
435} catch (err) {
436  console.error('isInSandbox error,', (err as BusinessError).code, (err as BusinessError).message);
437}
438```
439
440## dlpPermission.getDLPSupportedFileTypes
441
442getDLPSupportedFileTypes(): Promise&lt;Array&lt;string&gt;&gt;
443
444查询当前可支持权限设置和校验的文件扩展名类型列表。使用Promise方式异步返回结果。
445
446**系统能力:** SystemCapability.Security.DataLossPrevention
447
448**返回值:**
449
450| 类型 | 说明 |
451| -------- | -------- |
452| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回当前可支持权限设置和校验的文件扩展名类型列表。 |
453
454**错误码:**
455
456以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
457
458| 错误码ID | 错误信息 |
459| -------- | -------- |
460| 19100001 | Invalid parameter value. |
461| 19100011 | System service exception. |
462
463**示例:**
464
465```ts
466import dlpPermission from '@ohos.dlpPermission';
467import { BusinessError } from '@ohos.base';
468
469try {
470  let res = dlpPermission.getDLPSupportedFileTypes(); // 获取支持DLP的文件类型
471  console.info('res', JSON.stringify(res));
472} catch (err) {
473  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
474}
475```
476
477## dlpPermission.getDLPSupportedFileTypes
478
479getDLPSupportedFileTypes(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
480
481查询当前可支持权限设置和校验的文件扩展名类型列表。使用callback方式异步返回结果。
482
483**系统能力:** SystemCapability.Security.DataLossPrevention
484
485**参数:**
486
487| 参数名 | 类型 | 必填 | 说明 |
488| -------- | -------- | -------- | -------- |
489| callback | AsyncCallback&lt;Array&lt;string&gt;&gt; | 是 | 回调函数。err为undefine时表示查询成功;否则为错误对象。 |
490
491**错误码:**
492
493以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
494
495| 错误码ID | 错误信息 |
496| -------- | -------- |
497| 401 | Parameter error. |
498| 19100001 | Invalid parameter value. |
499| 19100011 | System service exception. |
500
501**示例:**
502
503```ts
504import dlpPermission from '@ohos.dlpPermission';
505import { BusinessError } from '@ohos.base';
506
507try {
508  dlpPermission.getDLPSupportedFileTypes((err, res) => {
509    if (err != undefined) {
510      console.error('getDLPSupportedFileTypes error,', err.code, err.message);
511    } else {
512      console.info('res', JSON.stringify(res));
513    }
514  }); // 获取支持DLP的文件类型
515} catch (err) {
516  console.error('getDLPSupportedFileTypes error,', (err as BusinessError).code, (err as BusinessError).message);
517}
518```
519
520## dlpPermission.setRetentionState
521
522setRetentionState(docUris: Array&lt;string&gt;): Promise&lt;void&gt;
523
524打开DLP文件时自动安装沙箱,关闭DLP文件时自动卸载沙箱。设置沙箱保留状态时DLP文件关闭时自动卸载暂时失效。使用Promise方式异步返回结果。
525
526**系统能力:** SystemCapability.Security.DataLossPrevention
527
528**参数:**
529
530| 参数名 | 类型 | 必填 | 说明 |
531| -------- | -------- | -------- | -------- |
532| docUris | Array&lt;string&gt; | 是 | 表示需要设置保留状态的文件uri列表。 |
533
534**返回值:**
535
536| 类型 | 说明 |
537| -------- | -------- |
538| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
539
540**错误码:**
541
542以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
543
544| 错误码ID | 错误信息 |
545| -------- | -------- |
546| 401 | Parameter error. |
547| 19100001 | Invalid parameter value. |
548| 19100006 | No permission to invoke this API, which is for DLP sandbox application. |
549| 19100011 | System service exception. |
550
551**示例:**
552
553```ts
554import dlpPermission from '@ohos.dlpPermission';
555import { BusinessError } from '@ohos.base';
556
557let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
558try {
559  let inSandbox = dlpPermission.isInSandbox(); // 是否在沙箱内
560  if (inSandbox) {
561    dlpPermission.setRetentionState([uri]); // 设置沙箱保留
562  }
563} catch (err) {
564  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
565}
566```
567
568## dlpPermission.setRetentionState
569
570setRetentionState(docUris: Array&lt;string&gt;, callback: AsyncCallback&lt;void&gt;): void
571
572打开DLP文件时自动安装沙箱,关闭DLP文件时自动卸载沙箱。设置沙箱保留状态时DLP文件关闭时自动卸载暂时失效。使用callback方式异步返回结果。
573
574**系统能力:** SystemCapability.Security.DataLossPrevention
575
576**参数:**
577
578| 参数名 | 类型 | 必填 | 说明 |
579| -------- | -------- | -------- | -------- |
580| docUris | Array&lt;string&gt; | 是 | 表示需要设置保留状态的文件uri列表。 |
581| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。err为undefine时表示设置成功;否则为错误对象。 |
582
583**错误码:**
584
585以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
586
587| 错误码ID | 错误信息 |
588| -------- | -------- |
589| 401 | Parameter error. |
590| 19100001 | Invalid parameter value. |
591| 19100006 | No permission to invoke this API, which is for DLP sandbox application. |
592| 19100011 | System service exception. |
593
594**示例:**
595
596```ts
597import dlpPermission from '@ohos.dlpPermission';
598import { BusinessError } from '@ohos.base';
599
600let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
601try {
602  dlpPermission.setRetentionState([uri], (err, res) => {
603    if (err != undefined) {
604      console.error('setRetentionState error,', err.code, err.message);
605    } else {
606      console.info('setRetentionState success');
607      console.info('res', JSON.stringify(res));
608    }
609  }); // 设置沙箱保留
610} catch (err) {
611  console.error('setRetentionState error,', (err as BusinessError).code, (err as BusinessError).message);
612}
613```
614
615## dlpPermission.cancelRetentionState
616
617cancelRetentionState(docUris: Array&lt;string&gt;): Promise&lt;void&gt;
618
619取消沙箱保留状态即恢复DLP文件关闭时自动卸载沙箱策略。使用Promise方式异步返回结果。
620
621**系统能力:** SystemCapability.Security.DataLossPrevention
622
623**参数:**
624
625| 参数名 | 类型 | 必填 | 说明 |
626| -------- | -------- | -------- | -------- |
627| docUris | Array&lt;string&gt; | 是 | 表示需要设置保留状态的文件uri列表。 |
628
629**返回值:**
630
631| 类型 | 说明 |
632| -------- | -------- |
633| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
634
635**错误码:**
636
637以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
638
639| 错误码ID | 错误信息 |
640| -------- | -------- |
641| 401 | Parameter error. |
642| 19100001 | Invalid parameter value. |
643| 19100011 | System service exception. |
644
645**示例:**
646
647```ts
648import dlpPermission from '@ohos.dlpPermission';
649import { BusinessError } from '@ohos.base';
650
651let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
652try {
653  dlpPermission.cancelRetentionState([uri]); // 取消沙箱保留
654} catch (err) {
655  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
656}
657```
658
659## dlpPermission.cancelRetentionState
660
661cancelRetentionState(docUris: Array&lt;string&gt;, callback: AsyncCallback&lt;void&gt;): void
662
663取消沙箱保留状态即恢复DLP文件关闭时自动卸载沙箱策略。使用callback方式异步返回结果。
664
665**系统能力:** SystemCapability.Security.DataLossPrevention
666
667**参数:**
668
669| 参数名 | 类型 | 必填 | 说明 |
670| -------- | -------- | -------- | -------- |
671| docUris | Array&lt;string&gt; | 是 | 表示需要设置保留状态的文件uri列表。 |
672| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。err为undefine时表示设置成功;否则为错误对象。 |
673
674**错误码:**
675
676以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
677
678| 错误码ID | 错误信息 |
679| -------- | -------- |
680| 401 | Parameter error. |
681| 19100001 | Invalid parameter value. |
682| 19100011 | System service exception. |
683
684**示例:**
685
686```ts
687import dlpPermission from '@ohos.dlpPermission';
688import { BusinessError } from '@ohos.base';
689
690let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
691try {
692  dlpPermission.cancelRetentionState([uri], (err, res) => {
693    if (err != undefined) {
694      console.error('cancelRetentionState error,', err.code, err.message);
695    } else {
696      console.info('cancelRetentionState success');
697    }
698  }); // 取消沙箱保留
699} catch (err) {
700  console.error('cancelRetentionState error,', (err as BusinessError).code, (err as BusinessError).message);
701}
702```
703
704## dlpPermission.getRetentionSandboxList
705
706getRetentionSandboxList(bundleName?: string): Promise&lt;Array&lt;RetentionSandboxInfo&gt;&gt;
707
708查询指定应用的保留沙箱信息列表。使用Promise方式异步返回结果。
709
710**系统能力:** SystemCapability.Security.DataLossPrevention
711
712**参数:**
713
714| 参数名 | 类型 | 必填 | 说明 |
715| -------- | -------- | -------- | -------- |
716| bundleName | string | 否 | 指定应用包名。默认为空,查询当前应用的保留沙箱信息列表。 |
717
718**返回值:**
719
720| 类型 | 说明 |
721| -------- | -------- |
722| Promise&lt;Array&lt;[RetentionSandboxInfo](#retentionsandboxinfo)&gt;&gt; | Promise对象。返回查询的沙箱信息列表。 |
723
724**错误码:**
725
726以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
727
728| 错误码ID | 错误信息 |
729| -------- | -------- |
730| 401 | Parameter error. |
731| 19100001 | Invalid parameter value. |
732| 19100007 | No permission to invoke this API, which is not for DLP sandbox application. |
733| 19100011 | System service exception. |
734
735**示例:**
736
737```ts
738import dlpPermission from '@ohos.dlpPermission';
739import { BusinessError } from '@ohos.base';
740
741try {
742  let res: Promise<Array<dlpPermission.RetentionSandboxInfo>> = dlpPermission.getRetentionSandboxList(); // 获取沙箱保留列表
743  console.info('res', JSON.stringify(res))
744} catch (err) {
745  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
746}
747```
748
749## dlpPermission.getRetentionSandboxList
750
751getRetentionSandboxList(bundleName: string, callback: AsyncCallback&lt;Array&lt;RetentionSandboxInfo&gt;&gt;): void
752
753查询指定应用的保留沙箱信息列表。使用callback方式异步返回结果。
754
755**系统能力:** SystemCapability.Security.DataLossPrevention
756
757**参数:**
758
759| 参数名 | 类型 | 必填 | 说明 |
760| -------- | -------- | -------- | -------- |
761| bundleName | string | 是 | 指定应用包名。 |
762| callback | AsyncCallback&lt;Array&lt;[RetentionSandboxInfo](#retentionsandboxinfo)&gt;&gt; | 是 | 回调函数。err为undefine时表示查询成功;否则为错误对象。 |
763
764**错误码:**
765
766以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
767
768| 错误码ID | 错误信息 |
769| -------- | -------- |
770| 401 | Parameter error. |
771| 19100001 | Invalid parameter value. |
772| 19100007 | No permission to invoke this API, which is not for DLP sandbox application. |
773| 19100011 | System service exception. |
774
775**示例:**
776
777```ts
778import dlpPermission from '@ohos.dlpPermission';
779import { BusinessError } from '@ohos.base';
780
781try {
782  dlpPermission.getRetentionSandboxList("bundleName", (err, res) => {
783    if (err != undefined) {
784      console.error('getRetentionSandboxList error,', err.code, err.message);
785    } else {
786      console.info('res', JSON.stringify(res));
787    }
788  }); // 获取沙箱保留列表
789} catch (err) {
790  console.error('getRetentionSandboxList error,', (err as BusinessError).code, (err as BusinessError).message);
791}
792```
793
794## dlpPermission.getRetentionSandboxList
795
796getRetentionSandboxList(callback: AsyncCallback&lt;Array&lt;RetentionSandboxInfo&gt;&gt;): void
797
798查询指定应用的保留沙箱信息列表。使用callback方式异步返回结果。
799
800**系统能力:** SystemCapability.Security.DataLossPrevention
801
802**参数:**
803
804| 参数名 | 类型 | 必填 | 说明 |
805| -------- | -------- | -------- | -------- |
806| callback | AsyncCallback&lt;Array&lt;[RetentionSandboxInfo](#retentionsandboxinfo)&gt;&gt; | 是 | 回调函数。err为undefine时表示查询成功;否则为错误对象。 |
807
808**错误码:**
809
810以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
811
812| 错误码ID | 错误信息 |
813| -------- | -------- |
814| 401 | Parameter error. |
815| 19100001 | Invalid parameter value. |
816| 19100007 | No permission to invoke this API, which is not for DLP sandbox application. |
817| 19100011 | System service exception. |
818
819**示例:**
820
821```ts
822import dlpPermission from '@ohos.dlpPermission';
823import { BusinessError } from '@ohos.base';
824
825try {
826  dlpPermission.getRetentionSandboxList((err, res) => {
827    if (err != undefined) {
828      console.error('getRetentionSandboxList error,', err.code, err.message);
829    } else {
830      console.info('res', JSON.stringify(res));
831    }
832  }); // 获取沙箱保留列表
833} catch (err) {
834  console.error('getRetentionSandboxList error,', (err as BusinessError).code, (err as BusinessError).message);
835}
836```
837
838## dlpPermission.getDLPFileAccessRecords
839
840getDLPFileAccessRecords(): Promise&lt;Array&lt;AccessedDLPFileInfo&gt;&gt;
841
842查询最近访问的DLP文件列表。使用Promise方式异步返回结果。
843
844**系统能力:** SystemCapability.Security.DataLossPrevention
845
846**返回值:**
847
848| 类型 | 说明 |
849| -------- | -------- |
850| Promise&lt;Array&lt;[AccessedDLPFileInfo](#accesseddlpfileinfo)&gt;&gt; | Promise对象。返回最近访问的DLP文件列表。 |
851
852**错误码:**
853
854以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
855
856| 错误码ID | 错误信息 |
857| -------- | -------- |
858| 19100001 | Invalid parameter value. |
859| 19100007 | No permission to invoke this API, which is not for DLP sandbox application. |
860| 19100011 | System service exception. |
861
862**示例:**
863
864```ts
865import dlpPermission from '@ohos.dlpPermission';
866import { BusinessError } from '@ohos.base';
867
868try {
869  let res: Promise<Array<dlpPermission.AccessedDLPFileInfo>> = dlpPermission.getDLPFileAccessRecords(); // 获取DLP访问列表
870  console.info('res', JSON.stringify(res))
871} catch (err) {
872  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
873}
874```
875
876## dlpPermission.getDLPFileAccessRecords
877
878getDLPFileAccessRecords(callback: AsyncCallback&lt;Array&lt;AccessedDLPFileInfo&gt;&gt;): void
879
880查询最近访问的DLP文件列表。使用callback方式异步返回结果。
881
882**系统能力:** SystemCapability.Security.DataLossPrevention
883
884**参数:**
885
886| 参数名 | 类型 | 必填 | 说明 |
887| -------- | -------- | -------- | -------- |
888| callback | AsyncCallback&lt;Array&lt;[AccessedDLPFileInfo](#accesseddlpfileinfo)&gt;&gt; | 是 | 回调函数。err为undefine时表示查询成功;否则为错误对象。 |
889
890**错误码:**
891
892以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
893
894| 错误码ID | 错误信息 |
895| -------- | -------- |
896| 401 | Parameter error. |
897| 19100001 | Invalid parameter value. |
898| 19100007 | No permission to invoke this API, which is not for DLP sandbox application. |
899| 19100011 | System service exception. |
900
901**示例:**
902
903```ts
904import dlpPermission from '@ohos.dlpPermission';
905import { BusinessError } from '@ohos.base';
906
907try {
908  dlpPermission.getDLPFileAccessRecords((err, res) => {
909    if (err != undefined) {
910      console.error('getDLPFileAccessRecords error,', err.code, err.message);
911    } else {
912      console.info('res', JSON.stringify(res));
913    }
914  }); // 获取DLP访问列表
915} catch (err) {
916  console.error('getDLPFileAccessRecords error,', (err as BusinessError).code, (err as BusinessError).message);
917}
918```
919
920## dlpPermission.getDLPGatheringPolicy
921
922getDLPGatheringPolicy(): Promise&lt;GatheringPolicyType&gt;
923
924查询DLP沙箱聚合策略。使用Promise方式异步返回结果。
925
926**系统接口:** 此接口为系统接口。
927
928**需要权限:** ohos.permission.ACCESS_DLP_FILE
929
930**系统能力:** SystemCapability.Security.DataLossPrevention
931
932**返回值:**
933
934| 类型 | 说明 |
935| -------- | -------- |
936| Promise&lt;[GatheringPolicyType](#gatheringpolicytype)&gt; | Promise对象。返回当前DLP沙箱聚合策略。 |
937
938**错误码:**
939
940以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
941
942| 错误码ID | 错误信息 |
943| -------- | -------- |
944| 201 | Permission denied. |
945| 202 | Non-system applications use system APIs. |
946| 19100001 | Invalid parameter value. |
947| 19100011 | System service exception. |
948
949**示例:**
950
951```ts
952import dlpPermission from '@ohos.dlpPermission';
953import { BusinessError } from '@ohos.base';
954
955try {
956  let res: Promise<dlpPermission.GatheringPolicyType> = dlpPermission.getDLPGatheringPolicy(); // 获取沙箱聚合策略
957  console.info('res', JSON.stringify(res));
958} catch (err) {
959  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
960}
961```
962
963## dlpPermission.getDLPGatheringPolicy
964
965getDLPGatheringPolicy(callback: AsyncCallback&lt;GatheringPolicyType&gt;): void
966
967查询DLP沙箱聚合策略。使用callback方式异步返回结果。
968
969**系统接口:** 此接口为系统接口。
970
971**需要权限:** ohos.permission.ACCESS_DLP_FILE
972
973**系统能力:** SystemCapability.Security.DataLossPrevention
974
975**参数:**
976
977| 参数名 | 类型 | 必填 | 说明 |
978| -------- | -------- | -------- | -------- |
979| callback | AsyncCallback&lt;[GatheringPolicyType](#gatheringpolicytype)&gt; | 是 | 回调函数。err为undefine时表示查询成功;否则为错误对象。 |
980
981**错误码:**
982
983以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
984
985| 错误码ID | 错误信息 |
986| -------- | -------- |
987| 201 | Permission denied. |
988| 202 | Non-system applications use system APIs. |
989| 401 | Parameter error. |
990| 19100001 | Invalid parameter value. |
991| 19100011 | System service exception. |
992
993**示例:**
994
995```ts
996import dlpPermission from '@ohos.dlpPermission';
997import { BusinessError } from '@ohos.base';
998
999try {
1000  dlpPermission.getDLPGatheringPolicy((err, res) => {
1001    if (err != undefined) {
1002      console.error('getDLPGatheringPolicy error,', err.code, err.message);
1003    } else {
1004      console.info('res', JSON.stringify(res));
1005    }
1006  }); // 获取沙箱聚合策略
1007} catch (err) {
1008  console.error('getDLPGatheringPolicy error,', (err as BusinessError).code, (err as BusinessError).message);
1009}
1010```
1011
1012## dlpPermission.installDLPSandbox
1013
1014installDLPSandbox(bundleName: string, access: DLPFileAccess, userId: number, uri: string): Promise&lt;DLPSandboxInfo&gt;
1015
1016安装一个应用的DLP沙箱。使用Promise方式异步返回结果返回应用沙箱信息。
1017
1018**系统接口:** 此接口为系统接口。
1019
1020**需要权限:** ohos.permission.ACCESS_DLP_FILE
1021
1022**系统能力:** SystemCapability.Security.DataLossPrevention
1023
1024**参数:**
1025
1026| 参数名 | 类型 | 必填 | 说明 |
1027| -------- | -------- | -------- | -------- |
1028| bundleName | string | 是 | 应用包名。 |
1029| access | [DLPFileAccess](#dlpfileaccess) | 是 | DLP文件授权类型。 |
1030| userId | number | 是 | 当前的用户ID,通过帐号子系统获取的OS帐号ID,默认主用户ID:100。 |
1031| uri | string | 是 | DLP文件的URI。 |
1032
1033**返回值:**
1034
1035| 类型 | 说明 |
1036| -------- | -------- |
1037| Promise&lt;[DLPSandboxInfo](#dlpsandboxinfo)&gt; | Promise对象。安装沙箱应用,返回应用沙箱信息。 |
1038
1039**错误码:**
1040
1041以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1042
1043| 错误码ID | 错误信息 |
1044| -------- | -------- |
1045| 201 | Permission denied. |
1046| 202 | Non-system applications use system APIs. |
1047| 401 | Parameter error. |
1048| 19100001 | Invalid parameter value. |
1049| 19100011 | System service exception. |
1050
1051**示例:**
1052
1053```ts
1054import dlpPermission from '@ohos.dlpPermission';
1055import { BusinessError } from '@ohos.base';
1056
1057let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1058try {
1059  let res: Promise<dlpPermission.DLPSandboxInfo> = dlpPermission.installDLPSandbox('com.ohos.note', dlpPermission.DLPFileAccess.READ_ONLY, 100, uri); // 安装DLP沙箱
1060  console.info('res', JSON.stringify(res));
1061} catch (err) {
1062  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
1063}
1064```
1065
1066## dlpPermission.installDLPSandbox
1067
1068installDLPSandbox(bundleName: string, access: DLPFileAccess, userId: number, uri:string, callback: AsyncCallback&lt;DLPSandboxInfo&gt;): void
1069
1070安装一个应用的DLP沙箱。使用callback方式异步返回应用沙箱信息。
1071
1072**系统接口:** 此接口为系统接口。
1073
1074**需要权限:** ohos.permission.ACCESS_DLP_FILE
1075
1076**系统能力:** SystemCapability.Security.DataLossPrevention
1077
1078**参数:**
1079
1080| 参数名 | 类型 | 必填 | 说明 |
1081| -------- | -------- | -------- | -------- |
1082| bundleName | string | 是 | 应用包名。 |
1083| access | [DLPFileAccess](#dlpfileaccess) | 是 | DLP文件授权类型。 |
1084| userId | number | 是 | 当前的用户ID,通过帐号子系统获取的系帐号ID,默认主用户ID:100。 |
1085| uri | string | 是 | DLP文件的URI。 |
1086| callback | AsyncCallback&lt;[DLPSandboxInfo](#dlpsandboxinfo)&gt; | 是 | 获取应用沙箱信息的回调。 |
1087
1088**错误码:**
1089
1090以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1091
1092| 错误码ID | 错误信息 |
1093| -------- | -------- |
1094| 201 | Permission denied. |
1095| 202 | Non-system applications use system APIs. |
1096| 401 | Parameter error. |
1097| 19100001 | Invalid parameter value. |
1098| 19100011 | System service exception. |
1099
1100**示例:**
1101
1102```ts
1103import dlpPermission from '@ohos.dlpPermission';
1104import { BusinessError } from '@ohos.base';
1105
1106let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1107try {
1108  dlpPermission.installDLPSandbox('com.ohos.note', dlpPermission.DLPFileAccess.READ_ONLY, 100, uri, (err, res) => {
1109    if (err != undefined) {
1110      console.error('installDLPSandbox error,', err.code, err.message);
1111    } else {
1112      console.info('res', JSON.stringify(res));
1113    }
1114  }); // 安装DLP沙箱
1115} catch (err) {
1116  console.error('installDLPSandbox error,', (err as BusinessError).code, (err as BusinessError).message);
1117}
1118```
1119
1120## dlpPermission.uninstallDLPSandbox
1121
1122uninstallDLPSandbox(bundleName: string, userId: number, appIndex: number): Promise&lt;void&gt;
1123
1124卸载一个应用的DLP沙箱。使用Promise方式异步返回结果。
1125
1126**系统接口:** 此接口为系统接口。
1127
1128**需要权限:** ohos.permission.ACCESS_DLP_FILE
1129
1130**系统能力:** SystemCapability.Security.DataLossPrevention
1131
1132**参数:**
1133
1134| 参数名 | 类型 | 必填 | 说明 |
1135| -------- | -------- | -------- | -------- |
1136| bundleName | string | 是 | 应用包名。 |
1137| userId | number | 是 | 当前的用户ID,通过帐号子系统获取的系统帐号ID,默认主用户ID:100 |
1138| appIndex | number | 是 | DLP沙箱号。 |
1139
1140**返回值:**
1141
1142| 类型 | 说明 |
1143| -------- | -------- |
1144| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
1145
1146**错误码:**
1147
1148以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1149
1150| 错误码ID | 错误信息 |
1151| -------- | -------- |
1152| 201 | Permission denied. |
1153| 202 | Non-system applications use system APIs. |
1154| 401 | Parameter error. |
1155| 19100001 | Invalid parameter value. |
1156| 19100011 | System service exception. |
1157
1158**示例:**
1159
1160```ts
1161import dlpPermission from '@ohos.dlpPermission';
1162import { BusinessError } from '@ohos.base';
1163
1164let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1165try {
1166  dlpPermission.installDLPSandbox('com.ohos.note', dlpPermission.DLPFileAccess.READ_ONLY, 100, uri).then((res)=>{
1167    console.info('res', JSON.stringify(res));
1168    dlpPermission.uninstallDLPSandbox('com.ohos.note', 100, res.appIndex); // 卸载DLP沙箱
1169  }); // 安装DLP沙箱
1170} catch (err) {
1171  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
1172}
1173```
1174
1175## dlpPermission.uninstallDLPSandbox
1176
1177uninstallDLPSandbox(bundleName: string, userId: number, appIndex: number, callback: AsyncCallback&lt;void&gt;): void
1178
1179卸载一个应用的DLP沙箱。使用callback方式异步返回结果。
1180
1181**系统接口:** 此接口为系统接口。
1182
1183**需要权限:** ohos.permission.ACCESS_DLP_FILE
1184
1185**系统能力:** SystemCapability.Security.DataLossPrevention
1186
1187**参数:**
1188
1189| 参数名 | 类型 | 必填 | 说明 |
1190| -------- | -------- | -------- | -------- |
1191| bundleName | string | 是 | 应用包名。 |
1192| userId | number | 是 | 当前的用户ID,通过帐号子系统获取的系统帐号ID,默认主用户ID:100。 |
1193| appIndex | number | 是 | DLP沙箱号,即installDLPSandbox接口调用成功后的返回值。 |
1194| callback | AsyncCallback&lt;void&gt; | 是 | 获取卸载结果的回调。 |
1195
1196**错误码:**
1197
1198以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1199
1200| 错误码ID | 错误信息 |
1201| -------- | -------- |
1202| 201 | Permission denied. |
1203| 202 | Non-system applications use system APIs. |
1204| 401 | Parameter error. |
1205| 19100001 | Invalid parameter value. |
1206| 19100011 | System service exception. |
1207
1208**示例:**
1209
1210```ts
1211import dlpPermission from '@ohos.dlpPermission';
1212import { BusinessError } from '@ohos.base';
1213
1214let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1215try {
1216  dlpPermission.installDLPSandbox('com.ohos.note', dlpPermission.DLPFileAccess.READ_ONLY, 100, uri).then((res)=>{
1217    console.info('res', JSON.stringify(res));
1218    dlpPermission.uninstallDLPSandbox('com.ohos.note', 100, res.appIndex, (err, res) => {
1219      if (err != undefined) {
1220        console.error('uninstallDLPSandbox error,', err.code, err.message);
1221      } else {
1222        console.info('res', JSON.stringify(res));
1223      }
1224    });
1225  }); // 安装DLP沙箱
1226} catch (err) {
1227  console.error('uninstallDLPSandbox error,', (err as BusinessError).code, (err as BusinessError).message);
1228}
1229```
1230
1231## dlpPermission.on('uninstallDLPSandbox')
1232
1233on(type: 'uninstallDLPSandbox', listener: Callback&lt;DLPSandboxState&gt;): void
1234
1235注册监听DLP沙箱卸载事件。
1236
1237**系统接口:** 此接口为系统接口。
1238
1239**需要权限:** ohos.permission.ACCESS_DLP_FILE
1240
1241**系统能力:** SystemCapability.Security.DataLossPrevention
1242
1243**参数:**
1244| 参数名 | 类型 | 必填 | 说明 |
1245| -------- | -------- | -------- | -------- |
1246| type | 'uninstallDLPSandbox' | 是 | 监听事件类型。固定值为'uninstallDLPSandbox':DLP沙箱卸载事件 |
1247| listener | Callback&lt;[DLPSandboxState](#dlpsandboxstate)&gt; | 是 | 沙箱应用卸载事件的回调。 |
1248
1249**错误码:**
1250
1251以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1252
1253| 错误码ID | 错误信息 |
1254| -------- | -------- |
1255| 201 | Permission denied. |
1256| 202 | Non-system applications use system APIs. |
1257| 401 | Parameter error. |
1258| 19100001 | Invalid parameter value. |
1259| 19100011 | System service exception. |
1260
1261**示例:**
1262
1263```ts
1264import dlpPermission from '@ohos.dlpPermission';
1265import { BusinessError } from '@ohos.base';
1266
1267try {
1268  dlpPermission.on('uninstallDLPSandbox', (info: dlpPermission.DLPSandboxState) => {
1269    console.info('uninstallDLPSandbox event', info.appIndex, info.bundleName)
1270  }); // 订阅
1271} catch (err) {
1272  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
1273}
1274```
1275
1276## dlpPermission.off('uninstallDLPSandbox')
1277
1278off(type: 'uninstallDLPSandbox', listener?: Callback&lt;DLPSandboxState&gt;): void
1279
1280取消监听DLP沙箱卸载事件。
1281
1282**系统接口:** 此接口为系统接口。
1283
1284**需要权限:** ohos.permission.ACCESS_DLP_FILE
1285
1286**系统能力:** SystemCapability.Security.DataLossPrevention
1287
1288**参数:**
1289| 参数名 | 类型 | 必填 | 说明 |
1290| -------- | -------- | -------- | -------- |
1291| type | 'uninstallDLPSandbox' | 是 | 监听事件类型。固定值为'uninstallDLPSandbox':DLP沙箱卸载事件 |
1292| listener | Callback&lt;[DLPSandboxState](#dlpsandboxstate)&gt; | 否 | 沙箱应用卸载事件的回调。默认为空,表示取消该类型事件的所有回调。 |
1293
1294**错误码:**
1295
1296以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1297
1298| 错误码ID | 错误信息 |
1299| -------- | -------- |
1300| 201 | Permission denied. |
1301| 202 | Non-system applications use system APIs. |
1302| 401 | Parameter error. |
1303| 19100001 | Invalid parameter value. |
1304| 19100011 | System service exception. |
1305
1306**示例:**
1307
1308```ts
1309import dlpPermission from '@ohos.dlpPermission';
1310import { BusinessError } from '@ohos.base';
1311
1312try {
1313  dlpPermission.off('uninstallDLPSandbox', (info: dlpPermission.DLPSandboxState) => {
1314    console.info('uninstallDLPSandbox event', info.appIndex, info.bundleName)
1315  }); // 取消订阅
1316} catch (err) {
1317  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
1318}
1319```
1320
1321## DLPFile
1322
1323管理DLPFile的实例,表示一个DLP文件对象,需要通过[generateDLPFile](#dlppermissiongeneratedlpfile)/[openDLPFile](#dlppermissionopendlpfile)获取DLPFile的示例。
1324
1325### 属性
1326
1327**系统接口:** 此接口为系统接口。
1328
1329**系统能力:** SystemCapability.Security.DataLossPrevention
1330
1331| 名称 | 类型 | 只读 | 必填 | 说明 |
1332| -------- | -------- | -------- | -------- | -------- |
1333| dlpProperty | [DLPProperty](#dlpproperty) | 否 | 是 | 表示DLP文件授权相关信息。 |
1334
1335### addDLPLinkFile
1336
1337addDLPLinkFile(linkFileName: string): Promise&lt;void&gt;
1338
1339在FUSE文件系统(Filesystem in Userspace)添加link文件(FUSE文件系统中映射到密文的虚拟文件,对该文件的读写操作会同步到DLP文件)。使用Promise方式异步返回结果。
1340
1341**系统接口:** 此接口为系统接口。
1342
1343**需要权限:** ohos.permission.ACCESS_DLP_FILE
1344
1345**系统能力:** SystemCapability.Security.DataLossPrevention
1346
1347**参数:**
1348
1349| 参数名 | 类型 | 必填 | 说明 |
1350| -------- | -------- | -------- | -------- |
1351| linkFileName | string | 是 | 用于fuse文件系统的link文件名。 |
1352
1353**返回值:**
1354
1355| 类型 | 说明 |
1356| -------- | -------- |
1357| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
1358
1359**错误码:**
1360
1361以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1362
1363| 错误码ID | 错误信息 |
1364| -------- | -------- |
1365| 201 | Permission denied. |
1366| 202 | Non-system applications use system APIs. |
1367| 401 | Parameter error. |
1368| 19100001 | Invalid parameter value. |
1369| 19100009 | Failed to operate the DLP file. |
1370| 19100011 | System service exception. |
1371
1372**示例:**
1373
1374```ts
1375import dlpPermission from '@ohos.dlpPermission';
1376import fs from '@ohos.file.fs';
1377import { BusinessError } from '@ohos.base';
1378
1379let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1380let file = fs.openSync(uri);
1381try {
1382  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
1383    dlpFile.addDLPLinkFile('test.txt.dlp.link'); // 添加link文件
1384    dlpFile.closeDLPFile(); //关闭DLP对象
1385  }); // 打开DLP文件
1386} catch (err) {
1387  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
1388}
1389fs.closeSync(file);
1390```
1391
1392### addDLPLinkFile
1393
1394addDLPLinkFile(linkFileName: string, callback: AsyncCallback&lt;void&gt;): void
1395
1396在FUSE中添加link文件,使用callback方式异步返回结果。
1397
1398**系统接口:** 此接口为系统接口。
1399
1400**需要权限:** ohos.permission.ACCESS_DLP_FILE
1401
1402**系统能力:** SystemCapability.Security.DataLossPrevention
1403
1404**参数:**
1405
1406| 参数名 | 类型 | 必填 | 说明 |
1407| -------- | -------- | -------- | -------- |
1408| linkFileName | string | 是 | 用于fuse文件系统的link文件名。 |
1409| callback | AsyncCallback&lt;void&gt; | 是 | 获取添加结果的回调。 |
1410
1411**错误码:**
1412
1413以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1414
1415| 错误码ID | 错误信息 |
1416| -------- | -------- |
1417| 201 | Permission denied. |
1418| 202 | Non-system applications use system APIs. |
1419| 401 | Parameter error. |
1420| 19100001 | Invalid parameter value. |
1421| 19100009 | Failed to operate the DLP file. |
1422| 19100011 | System service exception. |
1423
1424**示例:**
1425
1426```ts
1427import dlpPermission from '@ohos.dlpPermission';
1428import fs from '@ohos.file.fs';
1429import { BusinessError } from '@ohos.base';
1430
1431let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1432let file = fs.openSync(uri);
1433try {
1434  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
1435    dlpFile.addDLPLinkFile('test.txt.dlp.link', async (err, res) => {
1436      if (err != undefined) {
1437        console.error('addDLPLinkFile error,', err.code, err.message);
1438        await dlpFile.closeDLPFile(); //关闭DLP对象
1439      } else {
1440        console.info('res', JSON.stringify(res));
1441      }
1442    });
1443  }); // 打开DLP文件
1444} catch (err) {
1445  console.error('addDLPLinkFile error,', (err as BusinessError).code, (err as BusinessError).message);
1446}
1447```
1448
1449### stopFuseLink
1450
1451stopFuseLink(): Promise&lt;void&gt;
1452
1453停止FUSE关联读写。使用Promise方式异步返回结果。
1454
1455**系统接口:** 此接口为系统接口。
1456
1457**需要权限:** ohos.permission.ACCESS_DLP_FILE
1458
1459**系统能力:** SystemCapability.Security.DataLossPrevention
1460
1461**返回值:**
1462
1463| 类型 | 说明 |
1464| -------- | -------- |
1465| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
1466
1467**错误码:**
1468
1469以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1470
1471| 错误码ID | 错误信息 |
1472| -------- | -------- |
1473| 201 | Permission denied. |
1474| 202 | Non-system applications use system APIs. |
1475| 19100001 | Invalid parameter value. |
1476| 19100009 | Failed to operate the DLP file. |
1477| 19100011 | System service exception. |
1478
1479**示例:**
1480
1481```ts
1482import dlpPermission from '@ohos.dlpPermission';
1483import fs from '@ohos.file.fs';
1484import { BusinessError } from '@ohos.base';
1485
1486let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1487let file = fs.openSync(uri);
1488try {
1489  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
1490    dlpFile.addDLPLinkFile('test.txt.dlp.link'); // 添加link文件
1491    dlpFile.stopFuseLink(); // 暂停link读写
1492    dlpFile.closeDLPFile(); //关闭DLP对象
1493  }); // 打开DLP文件
1494} catch (err) {
1495  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
1496}
1497fs.closeSync(file);
1498```
1499
1500### stopFuseLink
1501
1502stopFuseLink(callback: AsyncCallback&lt;void&gt;): void
1503
1504停止FUSE关联读写,使用callback方式异步返回结果。
1505
1506**系统接口:** 此接口为系统接口。
1507
1508**需要权限:** ohos.permission.ACCESS_DLP_FILE
1509
1510**系统能力:** SystemCapability.Security.DataLossPrevention
1511
1512**参数:**
1513
1514| 参数名 | 类型 | 必填 | 说明 |
1515| -------- | -------- | -------- | -------- |
1516| callback | AsyncCallback&lt;void&gt; | 是 | 获取停止结果的回调。 |
1517
1518**错误码:**
1519
1520以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1521
1522| 错误码ID | 错误信息 |
1523| -------- | -------- |
1524| 201 | Permission denied. |
1525| 202 | Non-system applications use system APIs. |
1526| 401 | Parameter error. |
1527| 19100001 | Invalid parameter value. |
1528| 19100009 | Failed to operate the DLP file. |
1529| 19100011 | System service exception. |
1530
1531**示例:**
1532
1533```ts
1534import dlpPermission from '@ohos.dlpPermission';
1535import fs from '@ohos.file.fs';
1536import { BusinessError } from '@ohos.base';
1537
1538let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1539let file = fs.openSync(uri);
1540try {
1541  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
1542    dlpFile.addDLPLinkFile('test.txt.dlp.link'); // 添加link文件
1543    dlpFile.stopFuseLink(async (err, res) => {
1544      if (err != undefined) {
1545        console.error('stopFuseLink error,', err.code, err.message);
1546        await dlpFile.closeDLPFile(); //关闭DLP对象
1547      } else {
1548        console.info('res', JSON.stringify(res));
1549      }
1550    });
1551  }); // 打开DLP文件
1552} catch (err) {
1553  console.error('stopFuseLink error,', (err as BusinessError).code, (err as BusinessError).message);
1554}
1555```
1556
1557### resumeFuseLink
1558
1559resumeFuseLink(): Promise&lt;void&gt;
1560
1561恢复FUSE关联读写。使用Promise方式异步返回结果。
1562
1563**系统接口:** 此接口为系统接口。
1564
1565**需要权限:** ohos.permission.ACCESS_DLP_FILE
1566
1567**系统能力:** SystemCapability.Security.DataLossPrevention
1568
1569**返回值:**
1570
1571| 类型 | 说明 |
1572| -------- | -------- |
1573| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
1574
1575**错误码:**
1576
1577以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1578
1579| 错误码ID | 错误信息 |
1580| -------- | -------- |
1581| 201 | Permission denied. |
1582| 202 | Non-system applications use system APIs. |
1583| 19100001 | Invalid parameter value. |
1584| 19100009 | Failed to operate the DLP file. |
1585| 19100011 | System service exception. |
1586
1587**示例:**
1588
1589```ts
1590import dlpPermission from '@ohos.dlpPermission';
1591import fs from '@ohos.file.fs';
1592import { BusinessError } from '@ohos.base';
1593
1594let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1595let file = fs.openSync(uri);
1596try {
1597  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
1598    dlpFile.addDLPLinkFile('test.txt.dlp.link'); // 添加link文件
1599    dlpFile.stopFuseLink(); // 暂停link读写
1600    dlpFile.resumeFuseLink(); // 恢复link读写
1601    dlpFile.closeDLPFile(); //关闭DLP对象
1602  }); // 打开DLP文件
1603} catch (err) {
1604  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
1605}
1606fs.closeSync(file);
1607```
1608
1609### resumeFuseLink
1610
1611resumeFuseLink(callback: AsyncCallback&lt;void&gt;): void
1612
1613恢复FUSE关联读写,使用callback方式异步返回结果。
1614
1615**系统接口:** 此接口为系统接口。
1616
1617**需要权限:** ohos.permission.ACCESS_DLP_FILE
1618
1619**系统能力:** SystemCapability.Security.DataLossPrevention
1620
1621**参数:**
1622
1623| 参数名 | 类型 | 必填 | 说明 |
1624| -------- | -------- | -------- | -------- |
1625| callback | AsyncCallback&lt;void&gt; | 是 | 获取恢复结果的回调。 |
1626
1627**错误码:**
1628
1629以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1630
1631| 错误码ID | 错误信息 |
1632| -------- | -------- |
1633| 201 | Permission denied. |
1634| 202 | Non-system applications use system APIs. |
1635| 401 | Parameter error. |
1636| 19100001 | Invalid parameter value. |
1637| 19100009 | Failed to operate the DLP file. |
1638| 19100011 | System service exception. |
1639
1640**示例:**
1641
1642```ts
1643import dlpPermission from '@ohos.dlpPermission';
1644import fs from '@ohos.file.fs';
1645import { BusinessError } from '@ohos.base';
1646
1647let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1648let file = fs.openSync(uri);
1649try {
1650  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
1651    dlpFile.addDLPLinkFile('test.txt.dlp.link'); // 添加link文件
1652    dlpFile.stopFuseLink(); // 暂停link读写
1653    dlpFile.resumeFuseLink(async (err, res) => {
1654      if (err != undefined) {
1655        console.error('resumeFuseLink error,', err.code, err.message);
1656        await dlpFile.closeDLPFile(); //关闭DLP对象
1657      } else {
1658        console.info('res', JSON.stringify(res));
1659      }
1660    });
1661  }); // 打开DLP文件
1662} catch (err) {
1663  console.error('resumeFuseLink error,', (err as BusinessError).code, (err as BusinessError).message);
1664}
1665```
1666
1667### replaceDLPLinkFile
1668
1669replaceDLPLinkFile(linkFileName: string): Promise&lt;void&gt;
1670
1671替换link文件。使用Promise方式异步返回结果。
1672
1673**系统接口:** 此接口为系统接口。
1674
1675**需要权限:** ohos.permission.ACCESS_DLP_FILE
1676
1677**系统能力:** SystemCapability.Security.DataLossPrevention
1678
1679**参数:**
1680
1681| 参数名 | 类型 | 必填 | 说明 |
1682| -------- | -------- | -------- | -------- |
1683| linkFileName | string | 是 | 用于fuse文件系统的link文件名。 |
1684
1685**返回值:**
1686
1687| 类型 | 说明 |
1688| -------- | -------- |
1689| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
1690
1691**错误码:**
1692
1693以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1694
1695| 错误码ID | 错误信息 |
1696| -------- | -------- |
1697| 201 | Permission denied. |
1698| 202 | Non-system applications use system APIs. |
1699| 401 | Parameter error. |
1700| 19100001 | Invalid parameter value. |
1701| 19100009 | Failed to operate the DLP file. |
1702| 19100011 | System service exception. |
1703
1704**示例:**
1705
1706```ts
1707import dlpPermission from '@ohos.dlpPermission';
1708import fs from '@ohos.file.fs';
1709import { BusinessError } from '@ohos.base';
1710
1711let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1712let file = fs.openSync(uri);
1713try {
1714  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
1715    dlpFile.addDLPLinkFile('test.txt.dlp.link'); // 添加link文件
1716    dlpFile.stopFuseLink(); // 暂停link读写
1717    dlpFile.replaceDLPLinkFile('test_new.txt.dlp.link'); // 替换link文件
1718    dlpFile.resumeFuseLink(); // 恢复link读写
1719    dlpFile.closeDLPFile(); //关闭DLP对象
1720  }); // 打开DLP文件
1721} catch (err) {
1722  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
1723}
1724fs.closeSync(file);
1725```
1726
1727### replaceDLPLinkFile
1728
1729replaceDLPLinkFile(linkFileName: string, callback: AsyncCallback&lt;void&gt;): void
1730
1731替换link文件,使用callback方式异步返回结果。
1732
1733**系统接口:** 此接口为系统接口。
1734
1735**需要权限:** ohos.permission.ACCESS_DLP_FILE
1736
1737**系统能力:** SystemCapability.Security.DataLossPrevention
1738
1739**参数:**
1740
1741| 参数名 | 类型 | 必填 | 说明 |
1742| -------- | -------- | -------- | -------- |
1743| linkFileName | string | 是 | 用于fuse文件系统的link文件名。 |
1744| callback | AsyncCallback&lt;void&gt; | 是 | 获取替换结果的回调。 |
1745
1746**错误码:**
1747
1748以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1749
1750| 错误码ID | 错误信息 |
1751| -------- | -------- |
1752| 201 | Permission denied. |
1753| 202 | Non-system applications use system APIs. |
1754| 401 | Parameter error. |
1755| 19100001 | Invalid parameter value. |
1756| 19100009 | Failed to operate the DLP file. |
1757| 19100011 | System service exception. |
1758
1759**示例:**
1760
1761```ts
1762import dlpPermission from '@ohos.dlpPermission';
1763import fs from '@ohos.file.fs';
1764import { BusinessError } from '@ohos.base';
1765
1766let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1767let file = fs.openSync(uri);
1768try {
1769  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
1770    dlpFile.addDLPLinkFile('test.txt.dlp.link'); // 添加link文件
1771    dlpFile.stopFuseLink(); // 暂停link读写
1772    dlpFile.replaceDLPLinkFile('test_new.txt.dlp.link', async (err, res) => { // 替换link文件
1773      if (err != undefined) {
1774        console.error('replaceDLPLinkFile error,', err.code, err.message);
1775        await dlpFile.closeDLPFile(); //关闭DLP对象
1776      } else {
1777        console.info('res', JSON.stringify(res));
1778        await dlpFile.resumeFuseLink(); // 恢复link读写
1779      }
1780    });
1781  }); // 打开DLP文件
1782} catch (err) {
1783  console.error('error,', (err as BusinessError).code, (err as BusinessError).message);
1784}
1785```
1786
1787### deleteDLPLinkFile
1788
1789deleteDLPLinkFile(linkFileName: string): Promise&lt;void&gt;
1790
1791删除fuse文件系统中创建的link文件。使用Promise方式异步返回结果。
1792
1793**系统接口:** 此接口为系统接口。
1794
1795**需要权限:** ohos.permission.ACCESS_DLP_FILE
1796
1797**系统能力:** SystemCapability.Security.DataLossPrevention
1798
1799**参数:**
1800
1801| 参数名 | 类型 | 必填 | 说明 |
1802| -------- | -------- | -------- | -------- |
1803| linkFileName | string | 是 | 用于fuse文件系统的link文件名。 |
1804
1805**返回值:**
1806
1807| 类型 | 说明 |
1808| -------- | -------- |
1809| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
1810
1811**错误码:**
1812
1813以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1814
1815| 错误码ID | 错误信息 |
1816| -------- | -------- |
1817| 201 | Permission denied. |
1818| 202 | Non-system applications use system APIs. |
1819| 401 | Parameter error. |
1820| 19100001 | Invalid parameter value. |
1821| 19100009 | Failed to operate the DLP file. |
1822| 19100011 | System service exception. |
1823
1824**示例:**
1825
1826```ts
1827import dlpPermission from '@ohos.dlpPermission';
1828import fs from '@ohos.file.fs';
1829import { BusinessError } from '@ohos.base';
1830
1831let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1832let file = fs.openSync(uri);
1833try {
1834  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
1835    dlpFile.addDLPLinkFile('test.txt.dlp.link'); // 添加link文件
1836    dlpFile.deleteDLPLinkFile('test.txt.dlp.link'); // 删除link文件
1837    dlpFile.closeDLPFile(); //关闭DLP对象
1838  }); // 打开DLP文件
1839} catch (err) {
1840  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
1841}
1842fs.closeSync(file);
1843```
1844
1845### deleteDLPLinkFile
1846
1847deleteDLPLinkFile(linkFileName: string, callback: AsyncCallback&lt;void&gt;): void
1848
1849删除link文件,使用callback方式异步返回结果。
1850
1851**系统接口:** 此接口为系统接口。
1852
1853**需要权限:** ohos.permission.ACCESS_DLP_FILE
1854
1855**系统能力:** SystemCapability.Security.DataLossPrevention
1856
1857**参数:**
1858
1859| 参数名 | 类型 | 必填 | 说明 |
1860| -------- | -------- | -------- | -------- |
1861| linkFileName | string | 是 | 用于fuse文件系统的link文件名。 |
1862| callback | AsyncCallback&lt;void&gt; | 是 | 获取删除结果的回调。 |
1863
1864**错误码:**
1865
1866以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1867
1868| 错误码ID | 错误信息 |
1869| -------- | -------- |
1870| 201 | Permission denied. |
1871| 202 | Non-system applications use system APIs. |
1872| 401 | Parameter error. |
1873| 19100001 | Invalid parameter value. |
1874| 19100009 | Failed to operate the DLP file. |
1875| 19100011 | System service exception. |
1876
1877**示例:**
1878
1879```ts
1880import dlpPermission from '@ohos.dlpPermission';
1881import fs from '@ohos.file.fs';
1882import { BusinessError } from '@ohos.base';
1883
1884let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1885let file = fs.openSync(uri);
1886try {
1887  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
1888    dlpFile.addDLPLinkFile('test.txt.dlp.link'); // 添加link文件
1889    dlpFile.deleteDLPLinkFile('test.txt.dlp.link', async (err, res) => { // 删除link文件
1890      if (err != undefined) {
1891        console.error('deleteDLPLinkFile error,', err.code, err.message);
1892        await dlpFile.closeDLPFile(); //关闭DLP对象
1893      } else {
1894        console.info('res', JSON.stringify(res));
1895      }
1896    });
1897  }); // 打开DLP文件
1898} catch (err) {
1899  console.error('error,', (err as BusinessError).code, (err as BusinessError).message);
1900}
1901```
1902
1903### recoverDLPFile
1904
1905recoverDLPFile(plaintextFd: number): Promise&lt;void&gt;
1906
1907移除DLP文件的权限控制,恢复成明文文件。使用Promise方式异步返回结果。
1908
1909**系统接口:** 此接口为系统接口。
1910
1911**需要权限:** ohos.permission.ACCESS_DLP_FILE
1912
1913**系统能力:** SystemCapability.Security.DataLossPrevention
1914
1915**参数:**
1916
1917| 参数名 | 类型 | 必填 | 说明 |
1918| -------- | -------- | -------- | -------- |
1919| plaintextFd | number | 是 | 目标明文文件的fd。 |
1920
1921**返回值:**
1922
1923| 类型 | 说明 |
1924| -------- | -------- |
1925| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
1926
1927**错误码:**
1928
1929以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1930
1931| 错误码ID | 错误信息 |
1932| -------- | -------- |
1933| 201 | Permission denied. |
1934| 202 | Non-system applications use system APIs. |
1935| 401 | Parameter error. |
1936| 19100001 | Invalid parameter value. |
1937| 19100002 | Credential task error. |
1938| 19100003 | Credential task time out. |
1939| 19100004 | Credential service error. |
1940| 19100005 | Remote credential server error. |
1941| 19100008 | Not DLP file. |
1942| 19100009 | Failed to operate the DLP file. |
1943| 19100010 | DLP file is read-only. |
1944| 19100011 | System service exception. |
1945
1946**示例:**
1947
1948```ts
1949import dlpPermission from '@ohos.dlpPermission';
1950import fs from '@ohos.file.fs';
1951import { BusinessError } from '@ohos.base';
1952
1953let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
1954let file = fs.openSync(uri);
1955let destFile = fs.openSync("destUri");
1956try {
1957  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
1958    dlpFile.recoverDLPFile(destFile.fd); // 还原DLP文件
1959    dlpFile.closeDLPFile(); //关闭DLP对象
1960  }); // 打开DLP文件
1961} catch (err) {
1962  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
1963}
1964fs.closeSync(file);
1965fs.closeSync(destFile);
1966```
1967
1968### recoverDLPFile
1969
1970recoverDLPFile(plaintextFd: number, callback: AsyncCallback&lt;void&gt;): void
1971
1972移除DLP文件的权限控制,恢复成明文文件,使用callback方式异步返回结果。
1973
1974**系统接口:** 此接口为系统接口。
1975
1976**需要权限:** ohos.permission.ACCESS_DLP_FILE
1977
1978**系统能力:** SystemCapability.Security.DataLossPrevention
1979
1980**参数:**
1981
1982| 参数名 | 类型 | 必填 | 说明 |
1983| -------- | -------- | -------- | -------- |
1984| plaintextFd | number | 是 | 目标明文文件的fd。 |
1985| callback | AsyncCallback&lt;void&gt; | 是 | 获取恢复结果的回调。 |
1986
1987**错误码:**
1988
1989以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
1990
1991| 错误码ID | 错误信息 |
1992| -------- | -------- |
1993| 201 | Permission denied. |
1994| 202 | Non-system applications use system APIs. |
1995| 401 | Parameter error. |
1996| 19100001 | Invalid parameter value. |
1997| 19100002 | Credential task error. |
1998| 19100003 | Credential task time out. |
1999| 19100004 | Credential service error. |
2000| 19100005 | Remote credential server error. |
2001| 19100008 | Not DLP file. |
2002| 19100009 | Failed to operate the DLP file. |
2003| 19100010 | DLP file is read-only. |
2004| 19100011 | System service exception. |
2005
2006**示例:**
2007
2008```ts
2009import dlpPermission from '@ohos.dlpPermission';
2010import fs from '@ohos.file.fs';
2011import { BusinessError } from '@ohos.base';
2012
2013let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
2014let file = fs.openSync(uri);
2015let destFile = fs.openSync("destUri");
2016try {
2017  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
2018    dlpFile.recoverDLPFile(destFile.fd, async (err, res) => { // 还原DLP文件
2019      if (err != undefined) {
2020        console.error('recoverDLPFile error,', err.code, err.message);
2021        await dlpFile.closeDLPFile(); //关闭DLP对象
2022      } else {
2023        console.info('res', JSON.stringify(res));
2024      }
2025    });
2026  }); // 打开DLP文件
2027} catch (err) {
2028  console.error('error,', (err as BusinessError).code, (err as BusinessError).message);
2029}
2030```
2031
2032### closeDLPFile
2033
2034closeDLPFile(): Promise&lt;void&gt;
2035
2036关闭DLPFile,释放对象。使用Promise方式异步返回结果。
2037
2038**系统接口:** 此接口为系统接口。
2039
2040**需要权限:** ohos.permission.ACCESS_DLP_FILE
2041
2042**系统能力:** SystemCapability.Security.DataLossPrevention
2043
2044> **说明:**
2045>
2046> dlpFile不再使用,应该关闭释放内存,且对象不应继续使用。
2047
2048**返回值:**
2049
2050| 类型 | 说明 |
2051| -------- | -------- |
2052| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
2053
2054**错误码:**
2055
2056以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
2057
2058| 错误码ID | 错误信息 |
2059| -------- | -------- |
2060| 201 | Permission denied. |
2061| 202 | Non-system applications use system APIs. |
2062| 19100001 | Invalid parameter value. |
2063| 19100009 | Failed to operate the DLP file. |
2064| 19100011 | System service exception. |
2065
2066**示例:**
2067
2068```ts
2069import dlpPermission from '@ohos.dlpPermission';
2070import fs from '@ohos.file.fs';
2071import { BusinessError } from '@ohos.base';
2072
2073let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
2074let file = fs.openSync(uri);
2075try {
2076  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
2077    dlpFile.closeDLPFile(); //关闭DLP对象
2078  }); // 打开DLP文件
2079} catch (err) {
2080  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
2081}
2082fs.closeSync(file);
2083```
2084
2085### closeDLPFile
2086
2087closeDLPFile(callback: AsyncCallback&lt;void&gt;): void
2088
2089关闭DLPFile,释放对象,使用callback方式异步返回结果。
2090
2091**系统接口:** 此接口为系统接口。
2092
2093**需要权限:** ohos.permission.ACCESS_DLP_FILE
2094
2095**系统能力:** SystemCapability.Security.DataLossPrevention
2096
2097> **说明:**
2098>
2099> dlpFile不再使用,应该关闭释放内存,且对象不应继续使用。
2100
2101**参数:**
2102
2103| 参数名 | 类型 | 必填 | 说明 |
2104| -------- | -------- | -------- | -------- |
2105| callback | AsyncCallback&lt;void&gt; | 是 | 获取关闭结果的回调。 |
2106
2107**错误码:**
2108
2109以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
2110
2111| 错误码ID | 错误信息 |
2112| -------- | -------- |
2113| 201 | Permission denied. |
2114| 202 | Non-system applications use system APIs. |
2115| 19100001 | Invalid parameter value. |
2116| 19100009 | Failed to operate the DLP file. |
2117| 19100011 | System service exception. |
2118
2119**示例:**
2120
2121```ts
2122import dlpPermission from '@ohos.dlpPermission';
2123import fs from '@ohos.file.fs';
2124import { BusinessError } from '@ohos.base';
2125
2126let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
2127let file = fs.openSync(uri);
2128try {
2129  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
2130    dlpFile.closeDLPFile((err, res) => { // 关闭DLP文件
2131      if (err != undefined) {
2132        console.error('closeDLPFile error,', err.code, err.message);
2133      } else {
2134        console.info('res', JSON.stringify(res));
2135      }
2136      fs.closeSync(file);
2137    });
2138  }); // 打开DLP文件
2139} catch (err) {
2140  console.error('error,', (err as BusinessError).code, (err as BusinessError).message);
2141  fs.closeSync(file);
2142}
2143```
2144
2145## dlpPermission.generateDLPFile
2146
2147generateDLPFile(plaintextFd: number, ciphertextFd: number, property: DLPProperty): Promise&lt;DLPFile&gt;
2148
2149将明文文件加密生成权限受控文件,仅在授权列表内的用户可以打开,授权又分为完全控制权限和只读权限。获取DLPFile管理对象,使用Promise方式异步返回结果。
2150
2151**系统接口:** 此接口为系统接口。
2152
2153**需要权限:** ohos.permission.ACCESS_DLP_FILE
2154
2155**系统能力:** SystemCapability.Security.DataLossPrevention
2156
2157**参数:**
2158
2159| 参数名 | 类型 | 必填 | 说明 |
2160| -------- | -------- | -------- | -------- |
2161| plaintextFd | number | 是 | 待加密明文文件的fd。 |
2162| ciphertextFd | number | 是 | 目标加密文件的fd。 |
2163| property | [DLPProperty](#dlpproperty) | 是 | 授权用户信息:授权用户列表、owner帐号、联系人帐号。 |
2164
2165**返回值:**
2166
2167| 类型 | 说明 |
2168| -------- | -------- |
2169| Promise&lt;[DLPFile](#dlpfile)&gt; | Promise对象。返回对象表示成功生成DLP文件,返回null表示失败。 |
2170
2171**错误码:**
2172
2173以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
2174
2175| 错误码ID | 错误信息 |
2176| -------- | -------- |
2177| 201 | Permission denied. |
2178| 202 | Non-system applications use system APIs. |
2179| 401 | Parameter error. |
2180| 19100001 | Invalid parameter value. |
2181| 19100002 | Credential task error. |
2182| 19100003 | Credential task time out. |
2183| 19100004 | Credential service error. |
2184| 19100005 | Remote credential server error. |
2185| 19100009 | Failed to operate the DLP file. |
2186| 19100011 | System service exception. |
2187
2188**示例:**
2189
2190```ts
2191import dlpPermission from '@ohos.dlpPermission';
2192import fs from '@ohos.file.fs';
2193import { BusinessError } from '@ohos.base';
2194
2195let dlpUri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
2196let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt";
2197let file = fs.openSync(uri);
2198let dlp = fs.openSync(dlpUri);
2199try {
2200  let dlpProperty: dlpPermission.DLPProperty = {
2201    ownerAccount: 'zhangsan',
2202    ownerAccountType: dlpPermission.AccountType.DOMAIN_ACCOUNT,
2203    authUserList: [],
2204    contactAccount: 'zhangsan',
2205    offlineAccess: true,
2206    ownerAccountID: 'xxxxxxx',
2207    everyoneAccessList: []
2208  };
2209  dlpPermission.generateDLPFile(file.fd, dlp.fd, dlpProperty).then((dlpFile)=>{
2210    dlpFile.closeDLPFile(); //关闭DLP对象
2211  }); // 生成DLP文件
2212} catch (err) {
2213  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
2214}
2215fs.closeSync(file);
2216fs.closeSync(dlp);
2217```
2218
2219## dlpPermission.generateDLPFile
2220
2221generateDLPFile(plaintextFd: number, ciphertextFd: number, property: DLPProperty, callback: AsyncCallback&lt;DLPFile&gt;): void
2222
2223DLP管理应用调用该接口,将明文文件加密生成权限受控文件,仅在授权列表内的用户可以打开,授权又分为完全控制权限和只读权限。获取DLPFile管理对象,使用callback方式异步返回结果。
2224
2225**系统接口:** 此接口为系统接口。
2226
2227**需要权限:** ohos.permission.ACCESS_DLP_FILE
2228
2229**系统能力:** SystemCapability.Security.DataLossPrevention
2230
2231**参数:**
2232
2233| 参数名 | 类型 | 必填 | 说明 |
2234| -------- | -------- | -------- | -------- |
2235| plaintextFd | number | 是 | 待加密明文文件的fd。 |
2236| ciphertextFd | number | 是 | 目标加密文件的fd。 |
2237| property | [DLPProperty](#dlpproperty) | 是 | 授权用户信息:授权用户列表、owner帐号、联系人帐号。 |
2238| callback | AsyncCallback&lt;[DLPFile](#dlpfile)&gt; | 是 | 回调函数。返回DLPFile对象。 |
2239
2240**错误码:**
2241
2242以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
2243
2244| 错误码ID | 错误信息 |
2245| -------- | -------- |
2246| 201 | Permission denied. |
2247| 202 | Non-system applications use system APIs. |
2248| 401 | Parameter error. |
2249| 19100001 | Invalid parameter value. |
2250| 19100002 | Credential task error. |
2251| 19100003 | Credential task time out. |
2252| 19100004 | Credential service error. |
2253| 19100005 | Remote credential server error. |
2254| 19100009 | Failed to operate the DLP file. |
2255| 19100011 | System service exception. |
2256
2257**示例:**
2258
2259```ts
2260import dlpPermission from '@ohos.dlpPermission';
2261import fs from '@ohos.file.fs';
2262import { BusinessError } from '@ohos.base';
2263
2264let dlpUri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
2265let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt";
2266let file = fs.openSync(uri);
2267let dlp = fs.openSync(dlpUri);
2268try {
2269  let dlpProperty: dlpPermission.DLPProperty = {
2270    ownerAccount: 'zhangsan',
2271    ownerAccountType: dlpPermission.AccountType.DOMAIN_ACCOUNT,
2272    authUserList: [],
2273    contactAccount: 'zhangsan',
2274    offlineAccess: true,
2275    ownerAccountID: 'xxxxxxx',
2276    everyoneAccessList: []
2277  };
2278  dlpPermission.generateDLPFile(file.fd, dlp.fd, dlpProperty, (err, res) => { // 生成DLP文件
2279    if (err != undefined) {
2280      console.error('generateDLPFile error,', err.code, err.message);
2281    } else {
2282      console.info('res', JSON.stringify(res));
2283    }
2284  });
2285} catch (err) {
2286  console.error('error,', (err as BusinessError).code, (err as BusinessError).message);
2287  fs.closeSync(file);
2288}
2289```
2290
2291## dlpPermission.openDLPFile
2292
2293openDLPFile(ciphertextFd: number): Promise&lt;DLPFile&gt;
2294
2295打开DLP文件。获取DLPFile管理对象,使用Promise方式异步返回结果。
2296
2297**系统接口:** 此接口为系统接口。
2298
2299**需要权限:** ohos.permission.ACCESS_DLP_FILE
2300
2301**系统能力:** SystemCapability.Security.DataLossPrevention
2302
2303**参数:**
2304
2305| 参数名 | 类型 | 必填 | 说明 |
2306| -------- | -------- | -------- | -------- |
2307| ciphertextFd | number | 是 | 加密文件的fd。 |
2308
2309**返回值:**
2310
2311| 类型 | 说明 |
2312| -------- | -------- |
2313| Promise&lt;[DLPFile](#dlpfile)&gt; | Promise对象。返回对象表示打开生成DLP文件,返回null表示失败。 |
2314
2315**错误码:**
2316
2317以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
2318
2319| 错误码ID | 错误信息 |
2320| -------- | -------- |
2321| 201 | Permission denied. |
2322| 202 | Non-system applications use system APIs. |
2323| 401 | Parameter error. |
2324| 19100001 | Invalid parameter value. |
2325| 19100002 | Credential task error. |
2326| 19100003 | Credential task time out. |
2327| 19100004 | Credential service error. |
2328| 19100005 | Remote credential server error. |
2329| 19100008 | Not DLP file. |
2330| 19100009 | Failed to operate the DLP file. |
2331| 19100011 | System service exception. |
2332
2333**示例:**
2334
2335```ts
2336import dlpPermission from '@ohos.dlpPermission';
2337import fs from '@ohos.file.fs';
2338import { BusinessError } from '@ohos.base';
2339
2340let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
2341let file = fs.openSync(uri);
2342try {
2343  dlpPermission.openDLPFile(file.fd).then((dlpFile)=>{
2344    dlpFile.closeDLPFile(); //关闭DLP对象
2345  }); // 打开DLP文件
2346} catch (err) {
2347  console.error('error', (err as BusinessError).code, (err as BusinessError).message); // 失败报错
2348}
2349fs.closeSync(file);
2350```
2351
2352## dlpPermission.openDLPFile
2353
2354openDLPFile(ciphertextFd: number, callback: AsyncCallback&lt;DLPFile&gt;): void
2355
2356DLP管理应用调用该接口,打开DLP文件。获取DLPFile管理对象,使用callback方式异步返回结果。
2357
2358**系统接口:** 此接口为系统接口。
2359
2360**需要权限:** ohos.permission.ACCESS_DLP_FILE
2361
2362**系统能力:** SystemCapability.Security.DataLossPrevention
2363
2364**参数:**
2365
2366| 参数名 | 类型 | 必填 | 说明 |
2367| -------- | -------- | -------- | -------- |
2368| ciphertextFd | number | 是 | 加密文件的fd。 |
2369| callback | AsyncCallback&lt;[DLPFile](#dlpfile)&gt; | 是 | 回调函数。返回DLPFile对象。 |
2370
2371**错误码:**
2372
2373以下错误码的详细介绍请参见[DLP服务错误码](../errorcodes/errorcode-dlp.md)。
2374
2375| 错误码ID | 错误信息 |
2376| -------- | -------- |
2377| 201 | Permission denied. |
2378| 202 | Non-system applications use system APIs. |
2379| 401 | Parameter error. |
2380| 19100001 | Invalid parameter value. |
2381| 19100002 | Credential task error. |
2382| 19100003 | Credential task time out. |
2383| 19100004 | Credential service error. |
2384| 19100005 | Remote credential server error. |
2385| 19100008 | Not DLP file. |
2386| 19100009 | Failed to operate the DLP file. |
2387| 19100011 | System service exception. |
2388
2389**示例:**
2390
2391```ts
2392import dlpPermission from '@ohos.dlpPermission';
2393import fs from '@ohos.file.fs';
2394import { BusinessError } from '@ohos.base';
2395
2396let uri = "file://docs/storage/Users/currentUser/Desktop/test.txt.dlp";
2397let file = fs.openSync(uri);
2398try {
2399  dlpPermission.openDLPFile(file.fd, (err, res) => { // 打开DLP文件
2400    if (err != undefined) {
2401      console.error('openDLPFile error,', err.code, err.message);
2402    } else {
2403      console.info('res', JSON.stringify(res));
2404    }
2405  });
2406} catch (err) {
2407  console.error('error,', (err as BusinessError).code, (err as BusinessError).message);
2408  fs.closeSync(file);
2409}
2410```
2411
2412## ActionFlagType
2413
2414可以对DLP文件进行的操作类型枚举。例如:DLP沙箱应用可以根据是否具有操作权限,对其按钮进行置灰
2415
2416**系统能力:** SystemCapability.Security.DataLossPrevention
2417
2418| 名称 | 值 | 说明 |
2419| -------- | -------- | -------- |
2420| ACTION_VIEW | 0x00000001 | 表示文件的查看权限。 |
2421| ACTION_SAVE | 0x00000002 | 表示文件的保存权限。 |
2422| ACTION_SAVE_AS | 0x00000004 | 表示文件的另存为权限。 |
2423| ACTION_EDIT | 0x00000008 | 表示文件的编辑权限。 |
2424| ACTION_SCREEN_CAPTURE | 0x00000010 | 表示文件的截屏权限。 |
2425| ACTION_SCREEN_SHARE | 0x00000020 | 表示文件的共享屏幕权限。 |
2426| ACTION_SCREEN_RECORD | 0x00000040 | 表示文件的录屏权限。 |
2427| ACTION_COPY | 0x00000080 | 表示文件的复制权限。 |
2428| ACTION_PRINT | 0x00000100 | 表示文件的打印权限。 |
2429| ACTION_EXPORT | 0x00000200 | 表示文件的导出权限。 |
2430| ACTION_PERMISSION_CHANGE | 0x00000400 | 表示文件的修改文件权限。 |
2431
2432## DLPFileAccess
2433
2434DLP文件授权类型的枚举。
2435
2436**系统能力:** SystemCapability.Security.DataLossPrevention
2437
2438| 名称 | 值 | 说明 |
2439| -------- | -------- | -------- |
2440| NO_PERMISSION | 0 | 表示无文件权限。 |
2441| READ_ONLY | 1 | 表示文件的只读权限。 |
2442| CONTENT_EDIT | 2 | 表示文件的编辑权限。 |
2443| FULL_CONTROL | 3 | 表示文件的完全控制权限。 |
2444
2445## DLPPermissionInfo
2446
2447表示DLP文件的权限信息。
2448
2449**系统能力:** SystemCapability.Security.DataLossPrevention
2450
2451| 名称 | 类型 | 可读 | 可写 | 说明 |
2452| -------- | -------- | -------- | -------- | -------- |
2453| dlpFileAccess | [DLPFileAccess](#dlpfileaccess) | 是 | 否 | 表示DLP文件针对用户的授权类型,例如:只读 |
2454| flags | number | 是 | 否 | 表示DLP文件的详细操作权限,是不同[ActionFlagType](#actionflagtype)的组合。 |
2455
2456## AccessedDLPFileInfo
2457
2458表示被打开的DLP文件的信息。
2459
2460**系统能力:** SystemCapability.Security.DataLossPrevention
2461
2462| 名称 | 类型 | 可读 | 可写 | 说明 |
2463| -------- | -------- | -------- | -------- | -------- |
2464| uri | string | 是 | 否 | 表示DLP文件的uri。 |
2465| lastOpenTime | number | 是 | 否 | 表示DLP文件最近打开时间。 |
2466
2467## DLPSandboxInfo
2468
2469表示DLP沙箱的信息。
2470
2471**系统接口:** 此接口为系统接口。
2472
2473**系统能力:** SystemCapability.Security.DataLossPrevention
2474
2475| 名称 | 类型 | 可读 | 可写 | 说明 |
2476| -------- | -------- | -------- | -------- | -------- |
2477| appIndex | number | 是 | 否 | 表示DLP沙箱应用索引。 |
2478| tokenID | number | 是 | 否 | 表示DLP沙箱应用的tokenID。 |
2479
2480## DLPSandboxState
2481
2482DLP沙箱身份。
2483
2484**系统接口:** 此接口为系统接口。
2485
2486**系统能力:** SystemCapability.Security.DataLossPrevention
2487
2488| 名称 | 类型 | 可读 | 可写 | 说明 |
2489| -------- | -------- | -------- | -------- | -------- |
2490| bundleName | string | 是 | 否 | 表示应用包名。 |
2491| appIndex | number | 是 | 否 | 表示DLP沙箱应用索引。 |
2492
2493## RetentionSandboxInfo
2494
2495保留沙箱的沙箱信息。
2496
2497**系统能力:** SystemCapability.Security.DataLossPrevention
2498
2499| 名称 | 类型 | 可读 | 可写 | 说明 |
2500| -------- | -------- | -------- | -------- | -------- |
2501| appIndex | number | 是 | 否 | 表示DLP沙箱应用索引。 |
2502| bundleName | string | 是 | 否 | 表示应用包名。 |
2503| docUris | Array&lt;string&gt; | 是 | 否 | 表示DLP文件的URI列表。 |
2504
2505## AccountType
2506
2507授权帐号类型的枚举。
2508
2509**系统接口:** 此接口为系统接口。
2510
2511**系统能力:** SystemCapability.Security.DataLossPrevention
2512
2513| 名称 | 值 | 说明 |
2514| -------- | -------- | -------- |
2515| CLOUD_ACCOUNT | 1 | 表示云帐号。 |
2516| DOMAIN_ACCOUNT | 2 | 表示域帐号。 |
2517
2518## AuthUser
2519
2520表示授权用户数据。
2521
2522**系统接口:** 此接口为系统接口。
2523
2524**系统能力:** SystemCapability.Security.DataLossPrevention
2525
2526| 名称 | 类型 | 只读 | 必填 | 说明 |
2527| -------- | -------- | -------- | -------- | -------- |
2528| authAccount | string | 否 | 是 | 表示被授权用户帐号。 |
2529| authAccountType | [AccountType](#accounttype) | 否 | 是 | 表示被授权用户帐号类型。 |
2530| dlpFileAccess | [DLPFileAccess](#dlpfileaccess) | 否 | 是 | 表示被授予的权限。 |
2531| permExpiryTime | number | 否 | 是 | 表示授权到期时间。 |
2532
2533## DLPProperty
2534
2535表示授权相关信息。
2536
2537**系统接口:** 此接口为系统接口。
2538
2539**系统能力:** SystemCapability.Security.DataLossPrevention
2540
2541| 名称 | 类型 | 只读 | 必填 | 说明 |
2542| -------- | -------- | -------- | -------- | -------- |
2543| ownerAccount | string | 否 | 是 | 表示权限设置者帐号。 |
2544| ownerAccountID | string | 否 | 是 | 表示权限设置者帐号的ID。 |
2545| ownerAccountType | [AccountType](#accounttype) | 否 | 是 | 表示权限设置者帐号类型。 |
2546| authUserList | Array&lt;[AuthUser](#authuser)&gt; | 否 | 否 | 表示授权用户列表,默认为空。 |
2547| contactAccount | string | 否 | 是 | 表示联系人帐号。 |
2548| offlineAccess | boolean | 否 | 是 | 表示是否是离线打开。 |
2549| everyoneAccessList | Array&lt;[DLPFileAccess](#dlpfileaccess)&gt; | 否 | 否 | 表示授予所有人的权限,默认为空。 |
2550
2551## GatheringPolicyType
2552
2553DLP沙箱聚合策略类型的枚举。沙箱聚合表示同一权限类型的DLP文件,在同一个沙箱内打开,例如在同一个沙箱内使用不同tab页打开;沙箱非聚合表示不同DLP文件在不同沙箱打开。
2554
2555**系统能力:** SystemCapability.Security.DataLossPrevention
2556
2557**系统接口:** 此接口为系统接口。
2558
2559**参数:**
2560
2561| 名称 | 值 | 说明 |
2562| -------- | -------- | -------- |
2563| GATHERING | 1 | 表示沙箱聚合。 |
2564| NON_GATHERING | 2 | 表示沙箱非聚合。 |
2565