• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.enterprise.securityManager(安全管理)
2
3本模块提供设备安全管理的能力,包括查询安全补丁状态、查询文件加密状态等。
4
5> **说明:**
6>
7> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9> 本模块接口仅可在Stage模型下使用。
10>
11> 本模块接口仅对[设备管理应用](../../mdm/mdm-kit-guide.md#功能介绍)开放,需将设备管理应用激活后调用,实现相应功能。
12
13## 导入模块
14
15```ts
16import { securityManager } from '@kit.MDMKit';
17```
18
19## securityManager.uninstallUserCertificate
20
21uninstallUserCertificate(admin: Want, certUri: string): Promise<void>
22
23卸载用户证书,使用Promise异步回调。
24
25**需要权限:** ohos.permission.ENTERPRISE_MANAGE_CERTIFICATE
26
27**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
28
29**参数:**
30
31| 参数名  | 类型                                                    | 必填 | 说明                              |
32| ------- | ------------------------------------------------------- | ---- | --------------------------------- |
33| admin   | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                    |
34| certUri | string                                                  | 是   | 证书uri,由安装用户证书接口[installUserCertificate](#securitymanagerinstallusercertificate)设置返回。 |
35
36**返回值:**
37
38| 类型                | 说明                                                         |
39| ------------------- | ------------------------------------------------------------ |
40| Promise<void> | 无返回结果的Promise对象。当指定设备管理应用卸载用户证书失败时会抛出错误对象。 |
41
42**错误码**:
43
44以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
45
46| 错误码ID | 错误信息                                                     |
47| -------- | ------------------------------------------------------------ |
48| 9200001  | The application is not an administrator application of the device. |
49| 9200002  | The administrator application does not have permission to manage the device. |
50| 9201001  | Failed to manage the certificate.                            |
51| 201      | Permission verification failed. The application does not have the permission required to call the API. |
52| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
53
54**示例:**
55
56```ts
57import { Want } from '@kit.AbilityKit';
58import { BusinessError } from '@kit.BasicServicesKit';
59let wantTemp: Want = {
60  bundleName: 'com.example.myapplication',
61  abilityName: 'EntryAbility',
62};
63let aliasStr = "certName"
64securityManager.uninstallUserCertificate(wantTemp, aliasStr).then(() => {
65  console.info(`Succeeded in uninstalling user certificate.`);
66}).catch((err: BusinessError) => {
67  console.error(`Failed to uninstall user certificate. Code is ${err.code}, message is ${err.message}`);
68});
69```
70
71## securityManager.installUserCertificate
72
73installUserCertificate(admin: Want, certificate: CertBlob): Promise<string>
74
75安装用户证书,使用Promise异步回调。
76
77**需要权限:** ohos.permission.ENTERPRISE_MANAGE_CERTIFICATE
78
79**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
80
81**参数:**
82
83| 参数名      | 类型                                                    | 必填 | 说明           |
84| ----------- | ------------------------------------------------------- | ---- | -------------- |
85| admin       | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。 |
86| certificate | [CertBlob](#certblob)                                   | 是   | 证书信息。证书文件应放在应用沙箱路径等应用有权限访问的路径下。     |
87
88**返回值:**
89
90| 类型                  | 说明                                                 |
91| --------------------- | ---------------------------------------------------- |
92| Promise<string> | Promise对象,返回当前证书安装后的uri,用于卸载证书。 |
93
94**错误码**:
95
96以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
97
98| 错误码ID | 错误信息                                                     |
99| -------- | ------------------------------------------------------------ |
100| 9200001  | The application is not an administrator application of the device. |
101| 9200002  | The administrator application does not have permission to manage the device. |
102| 9201001  | Failed to manage the certificate.                            |
103| 201      | Permission verification failed. The application does not have the permission required to call the API. |
104| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
105
106**示例:**
107
108```ts
109import { common, Want } from '@kit.AbilityKit';
110import { BusinessError } from '@kit.BasicServicesKit';
111let wantTemp: Want = {
112  bundleName: 'com.example.myapplication',
113  abilityName: 'EntryAbility',
114};
115let certFileArray: Uint8Array = new Uint8Array();
116// The variable context needs to be initialized in MainAbility's onCreate callback function
117// test.cer needs to be placed in the rawfile directory
118const context = this.getUIContext().getHostContext() as common.UIAbilityContext;
119context.resourceManager.getRawFileContent("test.cer").then((value) => {
120  certFileArray = value;
121  securityManager.installUserCertificate(wantTemp, { inData: certFileArray, alias: "cert_alias_xts" })
122    .then((result) => {
123      console.info(`Succeeded in installing user certificate, result : ${JSON.stringify(result)}`);
124    }).catch((err: BusinessError) => {
125    console.error(`Failed to install user certificate. Code: ${err.code}, message: ${err.message}`);
126  })
127}).catch((err: BusinessError) => {
128  console.error(`Failed to get row file content. message: ${err.message}`);
129  return;
130});
131```
132
133## securityManager.installUserCertificate<sup>18+</sup>
134
135installUserCertificate(admin: Want, certificate: CertBlob, accountId: number): string
136
137支持按系统账户安装用户证书。
138
139**需要权限:** ohos.permission.ENTERPRISE_MANAGE_CERTIFICATE
140
141**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
142
143**参数:**
144
145| 参数名      | 类型                                                    | 必填 | 说明           |
146| ----------- | ------------------------------------------------------- | ---- | -------------- |
147| admin       | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。 |
148| certificate | [CertBlob](#certblob)                                   | 是   | 证书信息。证书文件应放在应用沙箱路径等应用有权限访问的路径下。     |
149| accountId   | number                                                  | 是   | 用户ID,指定具体用户,取值范围:大于等于0。accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。 |
150
151**返回值:**
152
153| 类型                  | 说明                                                 |
154| --------------------- | ---------------------------------------------------- |
155| string      | 返回当前证书安装后的uri,用于卸载证书。 |
156
157**错误码**:
158
159以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
160
161| 错误码ID | 错误信息                                                     |
162| -------- | ------------------------------------------------------------ |
163| 9200001  | The application is not an administrator application of the device. |
164| 9200002  | The administrator application does not have permission to manage the device. |
165| 9201001  | Failed to manage the certificate.                            |
166| 201      | Permission verification failed. The application does not have the permission required to call the API. |
167
168**示例:**
169
170```ts
171import { common, Want } from '@kit.AbilityKit';
172let wantTemp: Want = {
173  bundleName: 'com.example.myapplication',
174  abilityName: 'EntryAbility',
175};
176let certFileArray: Uint8Array = new Uint8Array();
177let accountId: number = 100;
178// The variable context needs to be initialized in MainAbility's onCreate callback function
179// test.cer needs to be placed in the rawfile directory
180const context = this.getUIContext().getHostContext() as common.UIAbilityContext;
181context.resourceManager.getRawFileContent("test.cer").then((value) => {
182  certFileArray = value;
183  try {
184    let result: string = securityManager.installUserCertificate(wantTemp, { inData: certFileArray, alias: "cert_alias_xts" }, accountId);
185    console.info(`Succeeded in installing user certificate. result: ${result}`);
186  } catch (err) {
187    console.error(`Failed to install user certificate. Code: ${err.code}, message: ${err.message}`);
188  }
189});
190```
191## securityManager.getUserCertificates<sup>18+</sup>
192
193getUserCertificates(admin: Want, accountId: number): Array&lt;string&gt;
194
195获取指定系统账户下的用户证书。
196
197**需要权限:** ohos.permission.ENTERPRISE_MANAGE_CERTIFICATE
198
199**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
200
201**参数:**
202
203| 参数名 | 类型                                                    | 必填 | 说明                                                         |
204| ------ | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
205| admin  | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                                               |
206| accountId | number                                               | 是   | 用户ID,指定具体用户,取值范围:大于等于0。accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。 |
207
208**返回值:**
209
210| 类型   | 说明                 |
211| ------ | -------------------- |
212| Array&lt;string&gt; | 返回在指定用户ID下安装的所有用户证书。 |
213
214**错误码**:
215
216以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
217
218| 错误码ID | 错误信息                                                     |
219| -------- | ------------------------------------------------------------ |
220| 9200001  | The application is not an administrator application of the device. |
221| 9200002  | The administrator application does not have permission to manage the device. |
222| 201      | Permission verification failed. The application does not have the permission required to call the API. |
223
224**示例:**
225
226```ts
227import { Want } from '@kit.AbilityKit';
228let wantTemp: Want = {
229  bundleName: 'com.example.myapplication',
230  abilityName: 'EntryAbility',
231};
232let accountId: number = 100;
233try {
234  let result: Array<string> = securityManager.getUserCertificates(wantTemp, accountId);
235  console.info(`Succeeded in getting the uri list of user Certificates. result: ${JSON.stringify(result)}`);
236} catch (err) {
237  console.error(`Failed to get the uri list of user Certificates. Code: ${err.code}, message: ${err.message}`);
238}
239```
240
241## securityManager.getSecurityStatus
242
243getSecurityStatus(admin: Want, item: string): string
244
245获取安全策略信息。
246
247**需要权限:** ohos.permission.ENTERPRISE_MANAGE_SECURITY
248
249**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
250
251**参数:**
252
253| 参数名 | 类型                                                    | 必填 | 说明                                                         |
254| ------ | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
255| admin  | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                                               |
256| item   | string                                                  | 是   | 安全策略名称。<br/>- patch:设备安全补丁。<br/>- encryption:设备文件系统加密。 <!--RP1--><!--RP1End-->|
257
258**返回值:**
259
260| 类型   | 说明                 |
261| ------ | -------------------- |
262| string | 返回安全策略状态值。 |
263
264**错误码**:
265
266以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
267
268| 错误码ID | 错误信息                                                     |
269| -------- | ------------------------------------------------------------ |
270| 9200001  | The application is not an administrator application of the device. |
271| 9200002  | The administrator application does not have permission to manage the device. |
272| 201      | Permission verification failed. The application does not have the permission required to call the API. |
273| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
274
275**示例:**
276
277```ts
278import { Want } from '@kit.AbilityKit';
279let wantTemp: Want = {
280  bundleName: 'com.example.myapplication',
281  abilityName: 'EntryAbility',
282};
283
284try {
285  let result: string = securityManager.getSecurityStatus(wantTemp, 'patch');
286  console.info(`Succeeded in getting security patch tag. tag: ${result}`);
287} catch (err) {
288  console.error(`Failed to get security patch tag. Code: ${err.code}, message: ${err.message}`);
289}
290```
291
292## securityManager.setPasswordPolicy
293
294setPasswordPolicy(admin: Want, policy: PasswordPolicy): void
295
296设置设备口令策略。
297
298**需要权限:** ohos.permission.ENTERPRISE_MANAGE_SECURITY
299
300**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
301
302**参数:**
303
304| 参数名      | 类型                                       | 必填   | 说明                       |
305| -------- | ---------------------------------------- | ---- | ------------------------------- |
306| admin    | [Want](../apis-ability-kit/js-apis-app-ability-want.md)     | 是    | 企业设备管理扩展组件。                  |
307| policy | [PasswordPolicy](#passwordpolicy) | 是 | 设备口令策略。 |
308
309**错误码**:
310
311以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
312
313| 错误码ID | 错误信息                                                                       |
314| ------- | ---------------------------------------------------------------------------- |
315| 9200001 | The application is not an administrator application of the device.                        |
316| 9200002 | The administrator application does not have permission to manage the device. |
317| 201 | Permission verification failed. The application does not have the permission required to call the API. |
318| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
319
320**示例:**
321
322```ts
323import { Want } from '@kit.AbilityKit';
324let wantTemp: Want = {
325  bundleName: 'com.example.myapplication',
326  abilityName: 'EntryAbility',
327};
328
329let policy: securityManager.PasswordPolicy = {
330  complexityRegex: '^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$',
331  validityPeriod: 1,
332  additionalDescription: '至少八个字符,至少一个大写字母,一个小写字母,一个数字和一个特殊字符',
333}
334try {
335    securityManager.setPasswordPolicy(wantTemp, policy);
336    console.info(`Succeeded in setting password policy.`);
337} catch(err) {
338    console.error(`Failed to set password policy. Code: ${err.code}, message: ${err.message}`);
339}
340```
341
342## securityManager.getPasswordPolicy
343
344getPasswordPolicy(admin: Want): PasswordPolicy
345
346获取设备口令策略。
347
348**需要权限:** ohos.permission.ENTERPRISE_MANAGE_SECURITY
349
350**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
351
352**参数:**
353
354| 参数名      | 类型                                       | 必填   | 说明                       |
355| -------- | ---------------------------------------- | ---- | ------------------------------- |
356| admin    | [Want](../apis-ability-kit/js-apis-app-ability-want.md)     | 是    | 企业设备管理扩展组件。                  |
357
358**返回值:**
359
360| 类型                   | 说明                      |
361| --------------------- | ------------------------- |
362| [PasswordPolicy](#passwordpolicy) | 设备口令策略。 |
363
364**错误码**:
365
366以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
367
368| 错误码ID | 错误信息                                                                       |
369| ------- | ---------------------------------------------------------------------------- |
370| 9200001 | The application is not an administrator application of the device.                        |
371| 9200002 | The administrator application does not have permission to manage the device. |
372| 201 | Permission verification failed. The application does not have the permission required to call the API. |
373| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
374
375**示例:**
376
377```ts
378import { Want } from '@kit.AbilityKit';
379let wantTemp: Want = {
380  bundleName: 'com.example.myapplication',
381  abilityName: 'EntryAbility',
382};
383
384try {
385    let result: securityManager.PasswordPolicy = securityManager.getPasswordPolicy(wantTemp);
386    console.info(`Succeeded in getting password policy, result : ${JSON.stringify(result)}`);
387} catch(err) {
388    console.error(`Failed to get password policy. Code: ${err.code}, message: ${err.message}`);
389}
390```
391
392## securityManager.setAppClipboardPolicy
393
394setAppClipboardPolicy(admin: Want, tokenId: number, policy: ClipboardPolicy): void
395
396设置设备剪贴板策略。
397
398**需要权限:** ohos.permission.ENTERPRISE_MANAGE_SECURITY
399
400**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
401
402**参数:**
403
404| 参数名      | 类型                                       | 必填   | 说明                       |
405| -------- | ---------------------------------------- | ---- | ------------------------------- |
406| admin    | [Want](../apis-ability-kit/js-apis-app-ability-want.md)     | 是    | 企业设备管理扩展组件。                  |
407| tokenId | number | 是 | 目标应用的身份标识。可通过[bundleManager.getApplicationInfo](../apis-ability-kit/js-apis-bundleManager-applicationInfo.md)再去获取accessTokenId获得。当前只支持最多100个tokenId被保存策略。 |
408| policy | [ClipboardPolicy](#clipboardpolicy) | 是 | 剪贴板策略。 |
409
410**错误码**:
411
412以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
413
414| 错误码ID | 错误信息                                                                       |
415| ------- | ---------------------------------------------------------------------------- |
416| 9200001 | The application is not an administrator application of the device.                        |
417| 9200002 | The administrator application does not have permission to manage the device. |
418| 201 | Permission verification failed. The application does not have the permission required to call the API. |
419| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
420
421**示例:**
422
423```ts
424import { Want } from '@kit.AbilityKit';
425let wantTemp: Want = {
426  bundleName: 'com.example.myapplication',
427  abilityName: 'EntryAbility',
428};
429let tokenId: number = 586874394;
430try {
431    securityManager.setAppClipboardPolicy(wantTemp, tokenId, securityManager.ClipboardPolicy.IN_APP);
432    console.info(`Succeeded in setting clipboard policy.`);
433} catch(err) {
434    console.error(`Failed to set clipboard policy. Code: ${err.code}, message: ${err.message}`);
435}
436```
437
438## securityManager.getAppClipboardPolicy
439
440getAppClipboardPolicy(admin: Want, tokenId?: number): string
441
442获取设备剪贴板策略。
443
444**需要权限:** ohos.permission.ENTERPRISE_MANAGE_SECURITY
445
446**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
447
448**参数:**
449
450| 参数名      | 类型                                       | 必填   | 说明                       |
451| -------- | ---------------------------------------- | ---- | ------------------------------- |
452| admin    | [Want](../apis-ability-kit/js-apis-app-ability-want.md)     | 是    | 企业设备管理扩展组件。      |
453| tokenId | number | 否 | 目标应用的身份标识。可通过[bundleManager.getApplicationInfo](../apis-ability-kit/js-apis-bundleManager-applicationInfo.md)再去获取accessTokenId获得。当前只支持最多100个tokenId被保存策略。 |
454
455**返回值:**
456
457| 类型                   | 说明                      |
458| --------------------- | ------------------------- |
459| string | 返回JSON字符串形式的设备剪贴板策略。|
460
461**错误码**:
462
463以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
464
465| 错误码ID | 错误信息                                                                       |
466| ------- | ---------------------------------------------------------------------------- |
467| 9200001 | The application is not an administrator application of the device.                        |
468| 9200002 | The administrator application does not have permission to manage the device. |
469| 201 | Permission verification failed. The application does not have the permission required to call the API. |
470| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
471
472**示例:**
473
474```ts
475import { Want } from '@kit.AbilityKit';
476let wantTemp: Want = {
477  bundleName: 'com.example.myapplication',
478  abilityName: 'EntryAbility',
479};
480let tokenId: number = 586874394;
481try {
482    let result: string = securityManager.getAppClipboardPolicy(wantTemp, tokenId);
483    console.info(`Succeeded in getting password policy, result : ${result}`);
484} catch(err) {
485    console.error(`Failed to set clipboard policy. Code: ${err.code}, message: ${err.message}`);
486}
487```
488
489## securityManager.setAppClipboardPolicy<sup>18+</sup>
490
491setAppClipboardPolicy(admin: Want, bundleName: string, accountId: number, policy: ClipboardPolicy): void
492
493设置指定包名和用户Id的设备剪贴板策略。当前只支持最多保存100个策略。
494
495**需要权限:** ohos.permission.ENTERPRISE_MANAGE_SECURITY
496
497**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
498
499**参数:**
500
501| 参数名     | 类型                                                      | 必填  | 说明                                                                                                                                                        |
502| -------    | ------------------------------------------------------- | --- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
503| admin      | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                                                                                                                                          |
504| bundleName | string                                                  | 是   | 被设置剪贴板策略的应用包名。                                                                                                                                      |
505| accountId  | number                                                  | 是   | 用户ID,指定具体用户,取值范围:大于等于0。accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。 |
506| policy     | [ClipboardPolicy](#clipboardpolicy)                     | 是   | 剪贴板策略。                                                                                                                                                    |
507
508**错误码**:
509
510以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
511
512| 错误码ID   | 错误信息                                                                                                                                            |
513| ------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
514| 9200001 | The application is not an administrator application of the device.                                                                              |
515| 9200002 | The administrator application does not have permission to manage the device.                                                                    |
516| 201     | Permission verification failed. The application does not have the permission required to call the API.                                          |
517
518**示例:**
519
520```ts
521import { Want } from '@kit.AbilityKit';
522
523let wantTemp: Want = {
524  bundleName: 'com.example.myapplication',
525  abilityName: 'EntryAbility',
526};
527let bundleName: string = 'com.example.myapplication';
528let accountId: number = 100;
529try {
530    securityManager.setAppClipboardPolicy(wantTemp, bundleName, accountId, securityManager.ClipboardPolicy.IN_APP);
531    console.info(`Succeeded in setting clipboard policy.`);
532} catch(err) {
533    console.error(`Failed to set clipboard policy. Code: ${err.code}, message: ${err.message}`);
534}
535```
536
537## securityManager.getAppClipboardPolicy<sup>18+</sup>
538
539getAppClipboardPolicy(admin: Want, bundleName: string, accountId: number): string
540
541获取指定包名和用户Id的设备剪贴板策略。
542
543**需要权限:** ohos.permission.ENTERPRISE_MANAGE_SECURITY
544
545**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
546
547**参数:**
548
549| 参数名     | 类型                                                      | 必填  | 说明                                                                                                                                                        |
550| -------    | ------------------------------------------------------- | --- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
551| admin      | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                                                                                                                                               |
552| bundleName | string                                                  | 是   | 被设置剪贴板策略的应用包名。                                                                                                                            |
553| accountId  | number                                                  | 是   | 用户ID,指定具体用户,取值范围:大于等于0。accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。 |
554
555**返回值:**
556
557| 类型                                  | 说明       |
558| ----------------------------------- | -------- |
559| string | 返回JSON字符串形式的设备剪贴板策略。 |
560
561**错误码**:
562
563以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
564
565| 错误码ID   | 错误信息                                                                                                                                            |
566| ------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
567| 9200001 | The application is not an administrator application of the device.                                                                              |
568| 9200002 | The administrator application does not have permission to manage the device.                                                                    |
569| 201     | Permission verification failed. The application does not have the permission required to call the API.                                          |
570
571**示例:**
572
573```ts
574import { Want } from '@kit.AbilityKit';
575
576let wantTemp: Want = {
577  bundleName: 'com.example.myapplication',
578  abilityName: 'EntryAbility',
579};
580let bundleName: string = 'com.example.myapplication';
581let accountId: number = 100;
582try {
583    let result: string = securityManager.getAppClipboardPolicy(wantTemp, bundleName, accountId);
584    console.info(`Succeeded in getting password policy, result : ${result}`);
585} catch(err) {
586    console.error(`Failed to set clipboard policy. Code: ${err.code}, message: ${err.message}`);
587}
588```
589
590## securityManager.setWatermarkImage<sup>14+</sup>
591
592setWatermarkImage(admin: Want, bundleName: string, source: string | image.PixelMap, accountId: number): void
593
594设置水印策略,当前仅支持2in1设备使用。
595
596**需要权限:** ohos.permission.ENTERPRISE_MANAGE_SECURITY
597
598**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
599
600**参数:**
601
602| 参数名      | 类型                                       | 必填   | 说明                       |
603| -------- | ---------------------------------------- | ---- | ------------------------------- |
604| admin    | [Want](../apis-ability-kit/js-apis-app-ability-want.md)     | 是    | 企业设备管理扩展组件。      |
605| bundleName | string    | 是   | 被设置水印的应用包名。                                                       |
606| source | string \| [image.PixelMap](../apis-image-kit/js-apis-image.md)  | 是   | string表示图像路径,图像路径为应用沙箱路径等应用有权限访问的路径。<br>image.PixelMap表示图像对象,图像像素占用大小不能超过500KB。                                                       |
607| accountId     | number     | 是   | 用户ID。accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。 |
608
609**错误码**:
610
611以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
612
613| 错误码ID | 错误信息                                                                       |
614| ------- | ---------------------------------------------------------------------------- |
615| 9200001 | The application is not an administrator application of the device.                        |
616| 9200002 | The administrator application does not have permission to manage the device. |
617| 201 | Permission verification failed. The application does not have the permission required to call the API. |
618| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
619
620**示例:**
621
622```ts
623import { Want } from '@kit.AbilityKit';
624let wantTemp: Want = {
625  bundleName: 'com.example.myapplication',
626  abilityName: 'EntryAbility',
627};
628let bundleName: string = 'com.example.myapplication';
629let source: string = '/data/storage/el1/base/test.png';
630let accountId: number = 100;
631try {
632    securityManager.setWatermarkImage(wantTemp, bundleName, source, accountId);
633    console.info(`Succeeded in setting set watermarkImage policy.`);
634} catch(err) {
635    console.error(`Failed to set watermarkImage policy. Code: ${err.code}, message: ${err.message}`);
636}
637```
638
639## securityManager.cancelWatermarkImage<sup>14+</sup>
640
641cancelWatermarkImage(admin: Want, bundleName: string, accountId: number): void
642
643取消水印策略,当前仅支持2in1设备使用。
644
645**需要权限:** ohos.permission.ENTERPRISE_MANAGE_SECURITY
646
647**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
648
649**参数:**
650
651| 参数名      | 类型                                       | 必填   | 说明                       |
652| -------- | ---------------------------------------- | ---- | ------------------------------- |
653| admin    | [Want](../apis-ability-kit/js-apis-app-ability-want.md)     | 是    | 企业设备管理扩展组件。        |
654| bundleName | string    | 是   | 被取消水印的应用包名。                                                       |
655| accountId     | number     | 是   | 用户ID。accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。 |
656
657**错误码**:
658
659以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
660
661| 错误码ID | 错误信息                                                                       |
662| ------- | ---------------------------------------------------------------------------- |
663| 9200001 | The application is not an administrator application of the device.                        |
664| 9200002 | The administrator application does not have permission to manage the device. |
665| 201 | Permission verification failed. The application does not have the permission required to call the API. |
666| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
667
668**示例:**
669
670```ts
671import { Want } from '@kit.AbilityKit';
672let wantTemp: Want = {
673  bundleName: 'com.example.myapplication',
674  abilityName: 'EntryAbility',
675};
676let bundleName: string = 'com.example.myapplication';
677let accountId: number = 100;
678try {
679    securityManager.cancelWatermarkImage(wantTemp, bundleName, accountId);
680    console.info(`Succeeded in setting cancel watermarkImage policy.`);
681} catch(err) {
682    console.error(`Failed to cancel watermarkImage policy. Code: ${err.code}, message: ${err.message}`);
683}
684```
685
686## CertBlob
687
688证书信息。
689
690**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
691
692| 名称   | 类型       | 必填 | 说明               |
693| ------ | ---------- | ---- | ------------------ |
694| inData | Uint8Array | 是   | 证书的二进制内容。 |
695| alias  | string     | 是   | 证书别名。         |
696
697## PasswordPolicy
698
699设备口令策略。
700
701**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
702
703| 名称         | 类型     | 必填 | 说明                            |
704| ----------- | --------| ---- | ------------------------------- |
705| complexityRegex | string | 否 | 口令复杂度正则表达式。 |
706| validityPeriod | number | 否 | 密码有效期(单位:毫秒)。 |
707| additionalDescription | string | 否 | 描述文本。 |
708
709## ClipboardPolicy
710
711设备剪贴板策略。
712
713**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
714
715| 名称         | 值 | 说明                            |
716| ----------- | -------- | ------------------------------- |
717| DEFAULT | 0  | 默认。 |
718| IN_APP | 1  | 剪贴板可在同一应用使用。 |
719| LOCAL_DEVICE | 2  | 剪贴板可在同一设备使用。 |
720| CROSS_DEVICE | 3  | 剪贴板可跨设备使用。 |