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<DLPPermissionInfo>): void 155 156查询当前DLP沙箱的权限信息。使用callback方式异步返回结果。 157 158**系统能力:** SystemCapability.Security.DataLossPrevention 159 160**参数:** 161 162| 参数名 | 类型 | 必填 | 说明 | 163| -------- | -------- | -------- | -------- | 164| callback | AsyncCallback<[DLPPermissionInfo](#dlppermissioninfo)> | 是 | 回调函数。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<AccessedDLPFileInfo>): void 282 283监听打开DLP文件。在当前应用的沙箱应用打开DLP文件时,通知当前应用。 284 285**系统能力:** SystemCapability.Security.DataLossPrevention 286 287**参数:** 288 289| 参数名 | 类型 | 必填 | 说明 | 290| -------- | -------- | -------- | -------- | 291| type | 'openDLPFile' | 是 | 监听事件类型。固定值为'openDLPFile':打开DLP文件事件。 | 292| listener | Callback<[AccessedDLPFileInfo](#accesseddlpfileinfo)> | 是 | 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<AccessedDLPFileInfo>): void 323 324取消监听打开DLP文件。在当前应用的沙箱应用打开DLP文件时,取消通知当前应用。 325 326**系统能力:** SystemCapability.Security.DataLossPrevention 327 328**参数:** 329| 参数名 | 类型 | 必填 | 说明 | 330| -------- | -------- | -------- | -------- | 331| type | 'openDLPFile' | 是 | 监听事件类型。固定值为'openDLPFile':打开DLP文件事件。 | 332| listener | Callback<[AccessedDLPFileInfo](#accesseddlpfileinfo)> | 否 | 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<boolean> 363 364查询当前应用是否运行在DLP沙箱环境。使用Promise方式异步返回结果。 365 366**系统能力:** SystemCapability.Security.DataLossPrevention 367 368**返回值:** 369 370| 类型 | 说明 | 371| -------- | -------- | 372| Promise<boolean> | 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<boolean>): void 400 401查询当前应用是否运行在DLP沙箱环境。使用callback方式异步返回结果。 402 403**系统能力:** SystemCapability.Security.DataLossPrevention 404 405**参数:** 406 407| 参数名 | 类型 | 必填 | 说明 | 408| -------- | -------- | -------- | -------- | 409| callback | AsyncCallback<boolean> | 是 | 回调函数。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<Array<string>> 443 444查询当前可支持权限设置和校验的文件扩展名类型列表。使用Promise方式异步返回结果。 445 446**系统能力:** SystemCapability.Security.DataLossPrevention 447 448**返回值:** 449 450| 类型 | 说明 | 451| -------- | -------- | 452| Promise<Array<string>> | 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<Array<string>>): void 480 481查询当前可支持权限设置和校验的文件扩展名类型列表。使用callback方式异步返回结果。 482 483**系统能力:** SystemCapability.Security.DataLossPrevention 484 485**参数:** 486 487| 参数名 | 类型 | 必填 | 说明 | 488| -------- | -------- | -------- | -------- | 489| callback | AsyncCallback<Array<string>> | 是 | 回调函数。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<string>): Promise<void> 523 524打开DLP文件时自动安装沙箱,关闭DLP文件时自动卸载沙箱。设置沙箱保留状态时DLP文件关闭时自动卸载暂时失效。使用Promise方式异步返回结果。 525 526**系统能力:** SystemCapability.Security.DataLossPrevention 527 528**参数:** 529 530| 参数名 | 类型 | 必填 | 说明 | 531| -------- | -------- | -------- | -------- | 532| docUris | Array<string> | 是 | 表示需要设置保留状态的文件uri列表。 | 533 534**返回值:** 535 536| 类型 | 说明 | 537| -------- | -------- | 538| Promise<void> | 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<string>, callback: AsyncCallback<void>): void 571 572打开DLP文件时自动安装沙箱,关闭DLP文件时自动卸载沙箱。设置沙箱保留状态时DLP文件关闭时自动卸载暂时失效。使用callback方式异步返回结果。 573 574**系统能力:** SystemCapability.Security.DataLossPrevention 575 576**参数:** 577 578| 参数名 | 类型 | 必填 | 说明 | 579| -------- | -------- | -------- | -------- | 580| docUris | Array<string> | 是 | 表示需要设置保留状态的文件uri列表。 | 581| callback | AsyncCallback<void> | 是 | 回调函数。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<string>): Promise<void> 618 619取消沙箱保留状态即恢复DLP文件关闭时自动卸载沙箱策略。使用Promise方式异步返回结果。 620 621**系统能力:** SystemCapability.Security.DataLossPrevention 622 623**参数:** 624 625| 参数名 | 类型 | 必填 | 说明 | 626| -------- | -------- | -------- | -------- | 627| docUris | Array<string> | 是 | 表示需要设置保留状态的文件uri列表。 | 628 629**返回值:** 630 631| 类型 | 说明 | 632| -------- | -------- | 633| Promise<void> | 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<string>, callback: AsyncCallback<void>): void 662 663取消沙箱保留状态即恢复DLP文件关闭时自动卸载沙箱策略。使用callback方式异步返回结果。 664 665**系统能力:** SystemCapability.Security.DataLossPrevention 666 667**参数:** 668 669| 参数名 | 类型 | 必填 | 说明 | 670| -------- | -------- | -------- | -------- | 671| docUris | Array<string> | 是 | 表示需要设置保留状态的文件uri列表。 | 672| callback | AsyncCallback<void> | 是 | 回调函数。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<Array<RetentionSandboxInfo>> 707 708查询指定应用的保留沙箱信息列表。使用Promise方式异步返回结果。 709 710**系统能力:** SystemCapability.Security.DataLossPrevention 711 712**参数:** 713 714| 参数名 | 类型 | 必填 | 说明 | 715| -------- | -------- | -------- | -------- | 716| bundleName | string | 否 | 指定应用包名。默认为空,查询当前应用的保留沙箱信息列表。 | 717 718**返回值:** 719 720| 类型 | 说明 | 721| -------- | -------- | 722| Promise<Array<[RetentionSandboxInfo](#retentionsandboxinfo)>> | 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<Array<RetentionSandboxInfo>>): void 752 753查询指定应用的保留沙箱信息列表。使用callback方式异步返回结果。 754 755**系统能力:** SystemCapability.Security.DataLossPrevention 756 757**参数:** 758 759| 参数名 | 类型 | 必填 | 说明 | 760| -------- | -------- | -------- | -------- | 761| bundleName | string | 是 | 指定应用包名。 | 762| callback | AsyncCallback<Array<[RetentionSandboxInfo](#retentionsandboxinfo)>> | 是 | 回调函数。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<Array<RetentionSandboxInfo>>): void 797 798查询指定应用的保留沙箱信息列表。使用callback方式异步返回结果。 799 800**系统能力:** SystemCapability.Security.DataLossPrevention 801 802**参数:** 803 804| 参数名 | 类型 | 必填 | 说明 | 805| -------- | -------- | -------- | -------- | 806| callback | AsyncCallback<Array<[RetentionSandboxInfo](#retentionsandboxinfo)>> | 是 | 回调函数。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<Array<AccessedDLPFileInfo>> 841 842查询最近访问的DLP文件列表。使用Promise方式异步返回结果。 843 844**系统能力:** SystemCapability.Security.DataLossPrevention 845 846**返回值:** 847 848| 类型 | 说明 | 849| -------- | -------- | 850| Promise<Array<[AccessedDLPFileInfo](#accesseddlpfileinfo)>> | 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<Array<AccessedDLPFileInfo>>): void 879 880查询最近访问的DLP文件列表。使用callback方式异步返回结果。 881 882**系统能力:** SystemCapability.Security.DataLossPrevention 883 884**参数:** 885 886| 参数名 | 类型 | 必填 | 说明 | 887| -------- | -------- | -------- | -------- | 888| callback | AsyncCallback<Array<[AccessedDLPFileInfo](#accesseddlpfileinfo)>> | 是 | 回调函数。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<GatheringPolicyType> 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<[GatheringPolicyType](#gatheringpolicytype)> | 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<GatheringPolicyType>): 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<[GatheringPolicyType](#gatheringpolicytype)> | 是 | 回调函数。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<DLPSandboxInfo> 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<[DLPSandboxInfo](#dlpsandboxinfo)> | 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<DLPSandboxInfo>): 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<[DLPSandboxInfo](#dlpsandboxinfo)> | 是 | 获取应用沙箱信息的回调。 | 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<void> 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<void> | 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<void>): 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<void> | 是 | 获取卸载结果的回调。 | 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<DLPSandboxState>): 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<[DLPSandboxState](#dlpsandboxstate)> | 是 | 沙箱应用卸载事件的回调。 | 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<DLPSandboxState>): 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<[DLPSandboxState](#dlpsandboxstate)> | 否 | 沙箱应用卸载事件的回调。默认为空,表示取消该类型事件的所有回调。 | 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<void> 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<void> | 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<void>): 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<void> | 是 | 获取添加结果的回调。 | 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<void> 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<void> | 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<void>): 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<void> | 是 | 获取停止结果的回调。 | 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<void> 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<void> | 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<void>): 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<void> | 是 | 获取恢复结果的回调。 | 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<void> 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<void> | 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<void>): 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<void> | 是 | 获取替换结果的回调。 | 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<void> 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<void> | 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<void>): 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<void> | 是 | 获取删除结果的回调。 | 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<void> 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<void> | 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<void>): 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<void> | 是 | 获取恢复结果的回调。 | 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<void> 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<void> | 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<void>): 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<void> | 是 | 获取关闭结果的回调。 | 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<DLPFile> 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<[DLPFile](#dlpfile)> | 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<DLPFile>): 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<[DLPFile](#dlpfile)> | 是 | 回调函数。返回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<DLPFile> 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<[DLPFile](#dlpfile)> | 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<DLPFile>): 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<[DLPFile](#dlpfile)> | 是 | 回调函数。返回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<string> | 是 | 否 | 表示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<[AuthUser](#authuser)> | 否 | 否 | 表示授权用户列表,默认为空。 | 2547| contactAccount | string | 否 | 是 | 表示联系人帐号。 | 2548| offlineAccess | boolean | 否 | 是 | 表示是否是离线打开。 | 2549| everyoneAccessList | Array<[DLPFileAccess](#dlpfileaccess)> | 否 | 否 | 表示授予所有人的权限,默认为空。 | 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