1# @ohos.enterprise.usbManager(USB管理)(系统接口)
2
3本模块提供USB管理能力。
4
5> **说明**:
6>
7> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9> 本模块接口仅可在Stage模型下使用。
10>
11> 本模块接口仅对[设备管理应用](../../mdm/mdm-kit-guide.md#功能介绍)开放,需将[设备管理应用激活](js-apis-enterprise-adminManager-sys.md#adminmanagerenableadmin)后调用,实现相应功能。
12>
13> 当前页面仅包含本模块的系统接口,其他公开接口参见。其他公开接口参见[@ohos.enterprise.usbManager](js-apis-enterprise-usbManager.md)。
14
15## 导入模块
16
17```ts
18import { usbManager } from '@kit.MDMKit';
19```
20
21## usbManager.setUsbPolicy
22
23setUsbPolicy(admin: Want, usbPolicy: UsbPolicy, callback: AsyncCallback\<void>): void
24
25指定设备管理应用设置USB的读写策略。使用callback异步回调。
26
27**需要权限:** ohos.permission.ENTERPRISE_MANAGE_USB
28
29**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
30
31
32
33**参数:**
34
35| 参数名   | 类型                                  | 必填   | 说明      |
36| ----- | ----------------------------------- | ---- | ------- |
37| admin | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是    | 设备管理应用。 |
38| usbPolicy  | [UsbPolicy](js-apis-enterprise-usbManager.md#usbpolicy) | 是 | USB读写策略(此接口只支持READ_WRITE和READ_ONLY)。 |
39| callback | AsyncCallback\<void> | 是 | 回调函数。当接口调用成功,err为null,否则为错误对象。 |
40
41**错误码**:
42
43以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
44
45| 错误码ID | 错误信息                                                                      |
46| ------- | ---------------------------------------------------------------------------- |
47| 9200001 | The application is not an administrator application of the device.           |
48| 9200002 | The administrator application does not have permission to manage the device. |
49| 201 | Permission verification failed. The application does not have the permission required to call the API. |
50| 202 | Permission verification failed. A non-system application calls a system API. |
51| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
52
53**示例:**
54
55```ts
56import { Want } from '@kit.AbilityKit';
57let wantTemp: Want = {
58  bundleName: 'bundleName',
59  abilityName: 'abilityName',
60};
61let policy: usbManager.UsbPolicy = usbManager.UsbPolicy.READ_WRITE
62
63usbManager.setUsbPolicy(wantTemp, policy, (err) => {
64  if (err) {
65    console.error(`Failed to set usb policy. Code is ${err.code}, message is ${err.message}`);
66    return;
67  }
68  console.info('Succeeded in setting usb policy');
69})
70```
71
72## usbManager.setUsbPolicy
73
74setUsbPolicy(admin: Want, usbPolicy: UsbPolicy): Promise\<void>
75
76指定设备管理应用设置USB的读写策略。使用Promise异步回调。
77
78**需要权限:** ohos.permission.ENTERPRISE_MANAGE_USB
79
80**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
81
82
83
84**参数:**
85
86| 参数名   | 类型                                  | 必填   | 说明      |
87| ----- | ----------------------------------- | ---- | ------- |
88| admin | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是    | 设备管理应用。 |
89| usbPolicy  | [UsbPolicy](js-apis-enterprise-usbManager.md#usbpolicy) | 是 | USB读写策略(此接口只支持READ_WRITE和READ_ONLY)。 |
90
91**返回值:**
92
93| 类型   | 说明                                  |
94| ----- | ----------------------------------- |
95| Promise\<void> | 无返回结果的Promise对象。当指定设备管理应用设置USB策略失败时抛出错误对象。 |
96
97**错误码**:
98
99以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
100
101| 错误码ID | 错误信息                                                                      |
102| ------- | ---------------------------------------------------------------------------- |
103| 9200001 | The application is not an administrator application of the device.            |
104| 9200002 | The administrator application does not have permission to manage the device. |
105| 201 | Permission verification failed. The application does not have the permission required to call the API. |
106| 202 | Permission verification failed. A non-system application calls a system API. |
107| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
108
109**示例:**
110
111```ts
112import { Want } from '@kit.AbilityKit';
113import { BusinessError } from '@kit.BasicServicesKit';
114let wantTemp: Want = {
115  bundleName: 'bundleName',
116  abilityName: 'abilityName',
117};
118let policy: usbManager.UsbPolicy = usbManager.UsbPolicy.READ_WRITE
119
120usbManager.setUsbPolicy(wantTemp, policy).then(() => {
121  console.info('Succeeded in setting usb policy');
122}).catch((err: BusinessError) => {
123  console.error(`Failed to set usb policy. Code is ${err.code}, message is ${err.message}`);
124})
125```
126
127## usbManager.disableUsb<sup>11+</sup>
128
129disableUsb(admin: Want, disable: boolean): void
130
131指定设备管理应用设置禁用或启用USB。
132
133**需要权限:** ohos.permission.ENTERPRISE_MANAGE_USB
134
135**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
136
137
138
139**参数:**
140
141| 参数名  | 类型                                | 必填 | 说明                                             |
142| ------- | ----------------------------------- | ---- | ------------------------------------------------ |
143| admin   | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。                                   |
144| disable | boolean                             | 是   | 是否禁用USB设备,true表示禁用,false表示不禁用。 |
145
146**错误码**:
147
148以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
149
150| 错误码ID | 错误信息                                                     |
151| -------- | ------------------------------------------------------------ |
152| 9200001  | The application is not an administrator application of the device. |
153| 9200002  | The administrator application does not have permission to manage the device. |
154| 9200010  | A conflict policy has been configured.                       |
155| 201      | Permission verification failed. The application does not have the permission required to call the API. |
156| 202      | Permission verification failed. A non-system application calls a system API. |
157| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
158
159**示例:**
160
161```ts
162import { Want } from '@kit.AbilityKit';
163let wantTemp: Want = {
164  bundleName: 'com.example.myapplication',
165  abilityName: 'EntryAbility',
166};
167try {
168  usbManager.disableUsb(wantTemp, true);
169  console.info(`Succeeded in disabling USB`);
170} catch (err) {
171  console.error(`Failed to disabling USB. Code: ${err.code}, message: ${err.message}`);
172}
173```
174
175## usbManager.isUsbDisabled<sup>11+</sup>
176
177isUsbDisabled(admin: Want): boolean
178
179指定设备管理应用查询USB是否禁用。
180
181**需要权限:** ohos.permission.ENTERPRISE_MANAGE_USB
182
183**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
184
185
186
187**参数:**
188
189| 参数名 | 类型                                | 必填 | 说明           |
190| ------ | ----------------------------------- | ---- | -------------- |
191| admin  | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。 |
192
193**返回值:**
194
195| 类型    | 说明                                                   |
196| ------- | ------------------------------------------------------ |
197| boolean | 返回true表示USB被禁用,<br/>返回false表示USB未被禁用。 |
198
199**错误码**:
200
201以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
202
203| 错误码ID | 错误信息                                                     |
204| -------- | ------------------------------------------------------------ |
205| 9200001  | The application is not an administrator application of the device. |
206| 9200002  | The administrator application does not have permission to manage the device. |
207| 201      | Permission verification failed. The application does not have the permission required to call the API. |
208| 202      | Permission verification failed. A non-system application calls a system API. |
209| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
210
211**示例:**
212
213```ts
214import { Want } from '@kit.AbilityKit';
215let wantTemp: Want = {
216  bundleName: 'com.example.myapplication',
217  abilityName: 'EntryAbility',
218};
219try {
220  let isDisabled = usbManager.isUsbDisabled(wantTemp);
221  console.info(`Succeeded in querying if USB is disabled: ${isDisabled}`);
222} catch (err) {
223  console.error(`Failed to query if USB is disabled. Code: ${err.code}, message: ${err.message}`);
224}
225```
226