1e41f4b71Sopenharmony_ci# @ohos.usbManager (USB Manager) (System API)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciThe **usbManager** module provides USB device management functions, including USB device list query, bulk data transfer, control transfer, and permission control on the host side as well as port management, and function switch and query on the device side.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **NOTE**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8e41f4b71Sopenharmony_ci>
9e41f4b71Sopenharmony_ci> This topic describes only the system APIs provided by the module. For details about its public APIs, see [@ohos.usbManager (USB Manager)](js-apis-usbManager.md).
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## Modules to Import
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci```ts
14e41f4b71Sopenharmony_ciimport { usbManager } from '@kit.BasicServicesKit';
15e41f4b71Sopenharmony_ci```
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci## addRight <sup>(deprecated)</sup>
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ciaddRight(bundleName: string, deviceName: string): boolean
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ciAdds the device access permission for the application. System applications are granted the device access permission by default, and calling this API will not revoke the permission.
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci**usbManager.requestRight** triggers a dialog box to request for user authorization, whereas **addRight** adds the access permission directly without displaying a dialog box. 
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci> **NOTE**
26e41f4b71Sopenharmony_ci>
27e41f4b71Sopenharmony_ci> This API is supported since API version 9 and deprecated since API version 12. You are advised to use [addDeviceAccessRight](#adddeviceaccessright12).
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci**System API**: This is a system API.
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci**Parameters**
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci| Name    | Type  | Mandatory| Description        |
36e41f4b71Sopenharmony_ci| ---------- | ------ | ---- | ------------ |
37e41f4b71Sopenharmony_ci| deviceName | string | Yes  | Device name.  |
38e41f4b71Sopenharmony_ci| bundleName | string | Yes  | Bundle name of the application.|
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ci**Error codes**
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
43e41f4b71Sopenharmony_ci
44e41f4b71Sopenharmony_ci| ID| Error Message                                                                                               |
45e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
46e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
47e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci**Return value**
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci| Type   | Description                                                                     |
52e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------------------- |
53e41f4b71Sopenharmony_ci| boolean | Permission addition result. The value **true** indicates that the access permission is added successfully; and the value **false** indicates the opposite.|
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci**Example**
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci```ts
58e41f4b71Sopenharmony_cilet devicesName: string = "1-1";
59e41f4b71Sopenharmony_cilet bundleName: string = "com.example.hello";
60e41f4b71Sopenharmony_ciif (usbManager.addRight(bundleName, devicesName)) {
61e41f4b71Sopenharmony_ci  console.log(`Succeed in adding right`);
62e41f4b71Sopenharmony_ci}
63e41f4b71Sopenharmony_ci```
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci## usbFunctionsFromString<sup>(deprecated)</sup>
66e41f4b71Sopenharmony_ci
67e41f4b71Sopenharmony_ciusbFunctionsFromString(funcs: string): number
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ciConverts the USB function list in the string format to a numeric mask in Device mode.
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ci> **NOTE**
72e41f4b71Sopenharmony_ci>
73e41f4b71Sopenharmony_ci> This API is supported since API version 9 and deprecated since API version 12. You are advised to use [getFunctionsFromString](#getfunctionsfromstring12).
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci**System API**: This is a system API.
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci**Parameters**
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci| Name| Type  | Mandatory| Description                  |
82e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------- |
83e41f4b71Sopenharmony_ci| funcs  | string | Yes  | Function list in string format.|
84e41f4b71Sopenharmony_ci
85e41f4b71Sopenharmony_ci**Error codes**
86e41f4b71Sopenharmony_ci
87e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
88e41f4b71Sopenharmony_ci
89e41f4b71Sopenharmony_ci| ID| Error Message                                                                                               |
90e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
91e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
92e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
93e41f4b71Sopenharmony_ci
94e41f4b71Sopenharmony_ci**Return value**
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci| Type  | Description              |
97e41f4b71Sopenharmony_ci| ------ | ------------------ |
98e41f4b71Sopenharmony_ci| number | Function list in numeric mask format.|
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci**Example**
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ci```ts
103e41f4b71Sopenharmony_cilet funcs: string = "acm";
104e41f4b71Sopenharmony_cilet ret: number = usbManager.usbFunctionsFromString(funcs);
105e41f4b71Sopenharmony_ci```
106e41f4b71Sopenharmony_ci
107e41f4b71Sopenharmony_ci## usbFunctionsToString<sup>(deprecated)</sup>
108e41f4b71Sopenharmony_ci
109e41f4b71Sopenharmony_ciusbFunctionsToString(funcs: FunctionType): string
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ciConverts the USB function list in the numeric mask format to a string in Device mode.
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ci> **NOTE**
114e41f4b71Sopenharmony_ci>
115e41f4b71Sopenharmony_ci> This API is supported since API version 9 and deprecated since API version 12. You are advised to use [getStringFromFunctions](#getstringfromfunctions12).
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci**System API**: This is a system API.
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci**Parameters**
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_ci| Name| Type                         | Mandatory| Description             |
124e41f4b71Sopenharmony_ci| ------ | ----------------------------- | ---- | ----------------- |
125e41f4b71Sopenharmony_ci| funcs  | [FunctionType](#functiontype) | Yes  | USB function list in numeric mask format.|
126e41f4b71Sopenharmony_ci
127e41f4b71Sopenharmony_ci**Error codes**
128e41f4b71Sopenharmony_ci
129e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
130e41f4b71Sopenharmony_ci
131e41f4b71Sopenharmony_ci| ID| Error Message                                                                                               |
132e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
133e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
134e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
135e41f4b71Sopenharmony_ci
136e41f4b71Sopenharmony_ci**Return value**
137e41f4b71Sopenharmony_ci
138e41f4b71Sopenharmony_ci| Type  | Description                          |
139e41f4b71Sopenharmony_ci| ------ | ------------------------------ |
140e41f4b71Sopenharmony_ci| string | Function list in string format.|
141e41f4b71Sopenharmony_ci
142e41f4b71Sopenharmony_ci**Example**
143e41f4b71Sopenharmony_ci
144e41f4b71Sopenharmony_ci```ts
145e41f4b71Sopenharmony_cilet funcs: number = usbManager.FunctionType.ACM | usb.FunctionType.ECM;
146e41f4b71Sopenharmony_cilet ret: string = usbManager.usbFunctionsToString(funcs);
147e41f4b71Sopenharmony_ci```
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_ci## setCurrentFunctions<sup>(deprecated)</sup>
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_cisetCurrentFunctions(funcs: FunctionType): Promise\<void\>
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ciSets the current USB function list in Device mode.
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci> **NOTE**
156e41f4b71Sopenharmony_ci>
157e41f4b71Sopenharmony_ci> This API is supported since API version 9 and deprecated since API version 12. You are advised to use [setDeviceFunctions](#setdevicefunctions12).
158e41f4b71Sopenharmony_ci
159e41f4b71Sopenharmony_ci**System API**: This is a system API.
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
162e41f4b71Sopenharmony_ci
163e41f4b71Sopenharmony_ci**Parameters**
164e41f4b71Sopenharmony_ci
165e41f4b71Sopenharmony_ci| Name| Type                         | Mandatory| Description             |
166e41f4b71Sopenharmony_ci| ------ | ----------------------------- | ---- | ----------------- |
167e41f4b71Sopenharmony_ci| funcs  | [FunctionType](#functiontype) | Yes  | USB function list in numeric mask format.|
168e41f4b71Sopenharmony_ci
169e41f4b71Sopenharmony_ci**Error codes**
170e41f4b71Sopenharmony_ci
171e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
172e41f4b71Sopenharmony_ci
173e41f4b71Sopenharmony_ci| ID| Error Message                                                                                               |
174e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
175e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
176e41f4b71Sopenharmony_ci| 14400002 | Permission denied. The HDC is disabled by the system.                                                   |
177e41f4b71Sopenharmony_ci
178e41f4b71Sopenharmony_ci**Return value**
179e41f4b71Sopenharmony_ci
180e41f4b71Sopenharmony_ci| Type               | Description         |
181e41f4b71Sopenharmony_ci| ------------------- | ------------- |
182e41f4b71Sopenharmony_ci| Promise\<**void**\> | Promise used to return the result.|
183e41f4b71Sopenharmony_ci
184e41f4b71Sopenharmony_ci**Example**
185e41f4b71Sopenharmony_ci
186e41f4b71Sopenharmony_ci```ts
187e41f4b71Sopenharmony_ciimport {BusinessError} from '@kit.BasicServicesKit';
188e41f4b71Sopenharmony_cilet funcs: number = usbManager.FunctionType.HDC;
189e41f4b71Sopenharmony_ciusbManager.setCurrentFunctions(funcs).then(() => {
190e41f4b71Sopenharmony_ci    console.info('usb setCurrentFunctions successfully.');
191e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => {
192e41f4b71Sopenharmony_ci    console.error('usb setCurrentFunctions failed: ' + err.code + ' message: ' + err.message);
193e41f4b71Sopenharmony_ci});
194e41f4b71Sopenharmony_ci```
195e41f4b71Sopenharmony_ci
196e41f4b71Sopenharmony_ci## getCurrentFunctions<sup>(deprecated)</sup>
197e41f4b71Sopenharmony_ci
198e41f4b71Sopenharmony_cigetCurrentFunctions(): FunctionType
199e41f4b71Sopenharmony_ci
200e41f4b71Sopenharmony_ciObtains the numeric mask combination for the USB function list in Device mode.
201e41f4b71Sopenharmony_ci
202e41f4b71Sopenharmony_ci> **NOTE**
203e41f4b71Sopenharmony_ci>
204e41f4b71Sopenharmony_ci> This API is supported since API version 9 and deprecated since API version 12. You are advised to use [getDeviceFunctions](#getdevicefunctions12).
205e41f4b71Sopenharmony_ci
206e41f4b71Sopenharmony_ci**System API**: This is a system API.
207e41f4b71Sopenharmony_ci
208e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
209e41f4b71Sopenharmony_ci
210e41f4b71Sopenharmony_ci**Error codes**
211e41f4b71Sopenharmony_ci
212e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
213e41f4b71Sopenharmony_ci
214e41f4b71Sopenharmony_ci| ID| Error Message                                                                       |
215e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------- |
216e41f4b71Sopenharmony_ci| 401      | Parameter error. No parameters are required.                                    |
217e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api. |
218e41f4b71Sopenharmony_ci
219e41f4b71Sopenharmony_ci**Return value**
220e41f4b71Sopenharmony_ci
221e41f4b71Sopenharmony_ci| Type                         | Description                             |
222e41f4b71Sopenharmony_ci| ----------------------------- | --------------------------------- |
223e41f4b71Sopenharmony_ci| [FunctionType](#functiontype) | Numeric mask combination for the USB function list.|
224e41f4b71Sopenharmony_ci
225e41f4b71Sopenharmony_ci**Example**
226e41f4b71Sopenharmony_ci
227e41f4b71Sopenharmony_ci```ts
228e41f4b71Sopenharmony_cilet ret: number = usbManager.getCurrentFunctions();
229e41f4b71Sopenharmony_ci```
230e41f4b71Sopenharmony_ci
231e41f4b71Sopenharmony_ci## getPorts<sup>(deprecated)</sup>
232e41f4b71Sopenharmony_ci
233e41f4b71Sopenharmony_cigetPorts(): Array\<USBPort\>
234e41f4b71Sopenharmony_ci
235e41f4b71Sopenharmony_ciObtains the list of all physical USB ports.
236e41f4b71Sopenharmony_ci
237e41f4b71Sopenharmony_ci> **NOTE**
238e41f4b71Sopenharmony_ci>
239e41f4b71Sopenharmony_ci> This API is supported since API version 9 and deprecated since API version 12. You are advised to use [getPortList](#getportlist12).
240e41f4b71Sopenharmony_ci
241e41f4b71Sopenharmony_ci**System API**: This is a system API.
242e41f4b71Sopenharmony_ci
243e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
244e41f4b71Sopenharmony_ci
245e41f4b71Sopenharmony_ci**Error codes**
246e41f4b71Sopenharmony_ci
247e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
248e41f4b71Sopenharmony_ci
249e41f4b71Sopenharmony_ci| ID| Error Message                                                                       |
250e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------- |
251e41f4b71Sopenharmony_ci| 401      | Parameter error. No parameters are required.                                    |
252e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api. |
253e41f4b71Sopenharmony_ci
254e41f4b71Sopenharmony_ci**Return value**
255e41f4b71Sopenharmony_ci
256e41f4b71Sopenharmony_ci| Type                      | Description                 |
257e41f4b71Sopenharmony_ci| -------------------------- | --------------------- |
258e41f4b71Sopenharmony_ci| Array<[USBPort](#usbport)> | List of physical USB ports.|
259e41f4b71Sopenharmony_ci
260e41f4b71Sopenharmony_ci**Example**
261e41f4b71Sopenharmony_ci
262e41f4b71Sopenharmony_ci```ts
263e41f4b71Sopenharmony_cilet ret: Array<usbManager.USBPort> = usbManager.getPorts();
264e41f4b71Sopenharmony_ci```
265e41f4b71Sopenharmony_ci
266e41f4b71Sopenharmony_ci## getSupportedModes(deprecated)
267e41f4b71Sopenharmony_ci
268e41f4b71Sopenharmony_cigetSupportedModes(portId: number): PortModeType
269e41f4b71Sopenharmony_ci
270e41f4b71Sopenharmony_ciObtains the mask combination for the supported mode list of a given USB port.
271e41f4b71Sopenharmony_ci
272e41f4b71Sopenharmony_ci> **NOTE**
273e41f4b71Sopenharmony_ci>
274e41f4b71Sopenharmony_ci> This API is supported since API version 9 and deprecated since API version 12. You are advised to use [getPortSupportModes](#getportlist12).
275e41f4b71Sopenharmony_ci
276e41f4b71Sopenharmony_ci**System API**: This is a system API.
277e41f4b71Sopenharmony_ci
278e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
279e41f4b71Sopenharmony_ci
280e41f4b71Sopenharmony_ci**Parameters**
281e41f4b71Sopenharmony_ci
282e41f4b71Sopenharmony_ci| Name| Type  | Mandatory| Description    |
283e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------- |
284e41f4b71Sopenharmony_ci| portId | number | Yes  | Port number.|
285e41f4b71Sopenharmony_ci
286e41f4b71Sopenharmony_ci**Error codes**
287e41f4b71Sopenharmony_ci
288e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
289e41f4b71Sopenharmony_ci
290e41f4b71Sopenharmony_ci| ID| Error Message                                                                                               |
291e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
292e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
293e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
294e41f4b71Sopenharmony_ci
295e41f4b71Sopenharmony_ci**Return value**
296e41f4b71Sopenharmony_ci
297e41f4b71Sopenharmony_ci| Type                         | Description                      |
298e41f4b71Sopenharmony_ci| ----------------------------- | -------------------------- |
299e41f4b71Sopenharmony_ci| [PortModeType](#portmodetype) | Mask combination for the supported mode list.|
300e41f4b71Sopenharmony_ci
301e41f4b71Sopenharmony_ci**Example**
302e41f4b71Sopenharmony_ci
303e41f4b71Sopenharmony_ci```ts
304e41f4b71Sopenharmony_cilet ret: number = usbManager.getSupportedModes(0);
305e41f4b71Sopenharmony_ci```
306e41f4b71Sopenharmony_ci
307e41f4b71Sopenharmony_ci## setPortRoles<sup>(deprecated)</sup>
308e41f4b71Sopenharmony_ci
309e41f4b71Sopenharmony_cisetPortRoles(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise\<void\>
310e41f4b71Sopenharmony_ci
311e41f4b71Sopenharmony_ciSets the role types supported by a specified port, which can be **powerRole** (for charging) and **dataRole** (for data transfer).
312e41f4b71Sopenharmony_ci
313e41f4b71Sopenharmony_ci> **NOTE**
314e41f4b71Sopenharmony_ci>
315e41f4b71Sopenharmony_ci> This API is supported since API version 9 and deprecated since API version 12. You are advised to use [setPortRoleTypes](#setportroletypes12).
316e41f4b71Sopenharmony_ci
317e41f4b71Sopenharmony_ci**System API**: This is a system API.
318e41f4b71Sopenharmony_ci
319e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
320e41f4b71Sopenharmony_ci
321e41f4b71Sopenharmony_ci**Parameters**
322e41f4b71Sopenharmony_ci
323e41f4b71Sopenharmony_ci| Name   | Type                           | Mandatory| Description            |
324e41f4b71Sopenharmony_ci| --------- | ------------------------------- | ---- | ---------------- |
325e41f4b71Sopenharmony_ci| portId    | number                          | Yes  | Port number.        |
326e41f4b71Sopenharmony_ci| powerRole | [PowerRoleType](#powerroletype) | Yes  | Role for charging.    |
327e41f4b71Sopenharmony_ci| dataRole  | [DataRoleType](#dataroletype)   | Yes  | Role for data transfer.|
328e41f4b71Sopenharmony_ci
329e41f4b71Sopenharmony_ci**Error codes**
330e41f4b71Sopenharmony_ci
331e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
332e41f4b71Sopenharmony_ci
333e41f4b71Sopenharmony_ci| ID| Error Message                                                                                               |
334e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
335e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
336e41f4b71Sopenharmony_ci
337e41f4b71Sopenharmony_ci**Return value**
338e41f4b71Sopenharmony_ci
339e41f4b71Sopenharmony_ci| Type               | Description         |
340e41f4b71Sopenharmony_ci| ------------------- | ------------- |
341e41f4b71Sopenharmony_ci| Promise\<**void**\> | Promise used to return the result.|
342e41f4b71Sopenharmony_ci
343e41f4b71Sopenharmony_ci**Example**
344e41f4b71Sopenharmony_ci
345e41f4b71Sopenharmony_ci```ts
346e41f4b71Sopenharmony_ciimport {BusinessError} from '@kit.BasicServicesKit';
347e41f4b71Sopenharmony_cilet portId: number = 1;
348e41f4b71Sopenharmony_ciusbManager.setPortRoles(portId, usbManager.PowerRoleType.SOURCE, ususbManagerb.DataRoleType.HOST).then(() => {
349e41f4b71Sopenharmony_ci    console.info('usb setPortRoles successfully.');
350e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => {
351e41f4b71Sopenharmony_ci    console.error('usb setPortRoles failed: ' + err.code + ' message: ' + err.message);
352e41f4b71Sopenharmony_ci});
353e41f4b71Sopenharmony_ci```
354e41f4b71Sopenharmony_ci
355e41f4b71Sopenharmony_ci## addDeviceAccessRight<sup>12+</sup>
356e41f4b71Sopenharmony_ci
357e41f4b71Sopenharmony_ciaddDeviceAccessRight(tokenId: string, deviceName: string): boolean
358e41f4b71Sopenharmony_ci
359e41f4b71Sopenharmony_ciAdds the device access permission for the application. System applications are granted the device access permission by default, and calling this API will not revoke the permission.
360e41f4b71Sopenharmony_ci
361e41f4b71Sopenharmony_ci**usbManager.requestRight** triggers a dialog box to request for user authorization, whereas **addDeviceAccessRight** adds the access permission directly without displaying a dialog box.
362e41f4b71Sopenharmony_ci
363e41f4b71Sopenharmony_ci> **NOTE**
364e41f4b71Sopenharmony_ci>
365e41f4b71Sopenharmony_ci> This API is supported since API version 12.
366e41f4b71Sopenharmony_ci
367e41f4b71Sopenharmony_ci**System API**: This is a system API.
368e41f4b71Sopenharmony_ci
369e41f4b71Sopenharmony_ci**Required permissions**: ohos.permission.MANAGE_USB_CONFIG
370e41f4b71Sopenharmony_ci
371e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
372e41f4b71Sopenharmony_ci
373e41f4b71Sopenharmony_ci**Parameters**
374e41f4b71Sopenharmony_ci
375e41f4b71Sopenharmony_ci| Name    | Type  | Mandatory| Description           |
376e41f4b71Sopenharmony_ci| ---------- | ------ | ---- | --------------- |
377e41f4b71Sopenharmony_ci| deviceName | string | Yes  | Device name.     |
378e41f4b71Sopenharmony_ci| tokenId    | string | Yes  | Token ID of the software package.|
379e41f4b71Sopenharmony_ci
380e41f4b71Sopenharmony_ci**Error codes**
381e41f4b71Sopenharmony_ci
382e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
383e41f4b71Sopenharmony_ci
384e41f4b71Sopenharmony_ci| ID| Error Message                                                                                               |
385e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
386e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
387e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
388e41f4b71Sopenharmony_ci
389e41f4b71Sopenharmony_ci**Return value**
390e41f4b71Sopenharmony_ci
391e41f4b71Sopenharmony_ci| Type   | Description                                                                     |
392e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------------------- |
393e41f4b71Sopenharmony_ci| boolean | Permission addition result. The value **true** indicates that the access permission is added successfully; and the value **false** indicates the opposite.|
394e41f4b71Sopenharmony_ci
395e41f4b71Sopenharmony_ci**Example**
396e41f4b71Sopenharmony_ci
397e41f4b71Sopenharmony_ci```ts
398e41f4b71Sopenharmony_ciimport bundleManager from '@ohos.bundle.bundleManager';
399e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
400e41f4b71Sopenharmony_cilet devicesName: string = "1-1";
401e41f4b71Sopenharmony_cilet tokenId: string = "";
402e41f4b71Sopenharmony_ci
403e41f4b71Sopenharmony_ci  try {
404e41f4b71Sopenharmony_ci    let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;
405e41f4b71Sopenharmony_ci    bundleManager.getBundleInfoForSelf(bundleFlags).then((bundleInfo) => {
406e41f4b71Sopenharmony_ci      console.info('testTag', 'getBundleInfoForSelf successfully. Data: %{public}s', JSON.stringify(bundleInfo));
407e41f4b71Sopenharmony_ci      let token = bundleInfo.appInfo.accessTokenId;
408e41f4b71Sopenharmony_ci      tokenId = token.toString();
409e41f4b71Sopenharmony_ci      if (usbManager.addDeviceAccessRight(tokenId, devicesName)) {
410e41f4b71Sopenharmony_ci        console.log(`Succeed in adding right`);
411e41f4b71Sopenharmony_ci      }
412e41f4b71Sopenharmony_ci    }).catch((err : BusinessError) => {
413e41f4b71Sopenharmony_ci      console.error('testTag getBundleInfoForSelf failed' );
414e41f4b71Sopenharmony_ci    });
415e41f4b71Sopenharmony_ci  } catch (err) {
416e41f4b71Sopenharmony_ci    console.error('testTag failed');
417e41f4b71Sopenharmony_ci  }
418e41f4b71Sopenharmony_ci```
419e41f4b71Sopenharmony_ci
420e41f4b71Sopenharmony_ci## getFunctionsFromString<sup>12+</sup>
421e41f4b71Sopenharmony_ci
422e41f4b71Sopenharmony_cigetFunctionsFromString(funcs: string): number
423e41f4b71Sopenharmony_ci
424e41f4b71Sopenharmony_ciConverts the USB function list in the string format to a numeric mask in Device mode.
425e41f4b71Sopenharmony_ci
426e41f4b71Sopenharmony_ci> **NOTE**
427e41f4b71Sopenharmony_ci>
428e41f4b71Sopenharmony_ci> This API is supported since API version 12.
429e41f4b71Sopenharmony_ci
430e41f4b71Sopenharmony_ci**System API**: This is a system API.
431e41f4b71Sopenharmony_ci
432e41f4b71Sopenharmony_ci**Required permissions**: ohos.permission.MANAGE_USB_CONFIG
433e41f4b71Sopenharmony_ci
434e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
435e41f4b71Sopenharmony_ci
436e41f4b71Sopenharmony_ci**Parameters**
437e41f4b71Sopenharmony_ci
438e41f4b71Sopenharmony_ci| Name| Type  | Mandatory| Description                  |
439e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------- |
440e41f4b71Sopenharmony_ci| funcs  | string | Yes  | Function list in string format.|
441e41f4b71Sopenharmony_ci
442e41f4b71Sopenharmony_ci**Error codes**
443e41f4b71Sopenharmony_ci
444e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
445e41f4b71Sopenharmony_ci
446e41f4b71Sopenharmony_ci| ID| Error Message                                                                       |
447e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------- |
448e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
449e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api. |
450e41f4b71Sopenharmony_ci
451e41f4b71Sopenharmony_ci**Return value**
452e41f4b71Sopenharmony_ci
453e41f4b71Sopenharmony_ci| Type  | Description              |
454e41f4b71Sopenharmony_ci| ------ | ------------------ |
455e41f4b71Sopenharmony_ci| number | Function list in numeric mask format.|
456e41f4b71Sopenharmony_ci
457e41f4b71Sopenharmony_ci**Example**
458e41f4b71Sopenharmony_ci
459e41f4b71Sopenharmony_ci```ts
460e41f4b71Sopenharmony_cilet funcs: string = "acm";
461e41f4b71Sopenharmony_cilet ret: number = usbManager.getFunctionsFromString(funcs);
462e41f4b71Sopenharmony_ci```
463e41f4b71Sopenharmony_ci
464e41f4b71Sopenharmony_ci## getStringFromFunctions<sup>12+</sup>
465e41f4b71Sopenharmony_ci
466e41f4b71Sopenharmony_cigetStringFromFunctions(funcs: FunctionType): string
467e41f4b71Sopenharmony_ci
468e41f4b71Sopenharmony_ciConverts the USB function list in the numeric mask format to a string in Device mode.
469e41f4b71Sopenharmony_ci
470e41f4b71Sopenharmony_ci> **NOTE**
471e41f4b71Sopenharmony_ci>
472e41f4b71Sopenharmony_ci> This API is supported since API version 12.
473e41f4b71Sopenharmony_ci
474e41f4b71Sopenharmony_ci**System API**: This is a system API.
475e41f4b71Sopenharmony_ci
476e41f4b71Sopenharmony_ci**Required permissions**: ohos.permission.MANAGE_USB_CONFIG
477e41f4b71Sopenharmony_ci
478e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
479e41f4b71Sopenharmony_ci
480e41f4b71Sopenharmony_ci**Parameters**
481e41f4b71Sopenharmony_ci
482e41f4b71Sopenharmony_ci| Name| Type                         | Mandatory| Description             |
483e41f4b71Sopenharmony_ci| ------ | ----------------------------- | ---- | ----------------- |
484e41f4b71Sopenharmony_ci| funcs  | [FunctionType](#functiontype) | Yes  | USB function list in numeric mask format.|
485e41f4b71Sopenharmony_ci
486e41f4b71Sopenharmony_ci**Error codes**
487e41f4b71Sopenharmony_ci
488e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
489e41f4b71Sopenharmony_ci
490e41f4b71Sopenharmony_ci| ID| Error Message                                                                                               |
491e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
492e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
493e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
494e41f4b71Sopenharmony_ci
495e41f4b71Sopenharmony_ci**Return value**
496e41f4b71Sopenharmony_ci
497e41f4b71Sopenharmony_ci| Type  | Description                          |
498e41f4b71Sopenharmony_ci| ------ | ------------------------------ |
499e41f4b71Sopenharmony_ci| string | Function list in string format.|
500e41f4b71Sopenharmony_ci
501e41f4b71Sopenharmony_ci**Example**
502e41f4b71Sopenharmony_ci
503e41f4b71Sopenharmony_ci```ts
504e41f4b71Sopenharmony_cilet funcs: number = usbManager.FunctionType.ACM | usbManager.FunctionType.ECM;
505e41f4b71Sopenharmony_cilet ret: string = usbManager.getStringFromFunctions(funcs);
506e41f4b71Sopenharmony_ci```
507e41f4b71Sopenharmony_ci
508e41f4b71Sopenharmony_ci## setDeviceFunctions<sup>12+</sup>
509e41f4b71Sopenharmony_ci
510e41f4b71Sopenharmony_cisetDeviceFunctions(funcs: FunctionType): Promise\<void\>
511e41f4b71Sopenharmony_ci
512e41f4b71Sopenharmony_ciSets the current USB function list in Device mode.
513e41f4b71Sopenharmony_ci
514e41f4b71Sopenharmony_ci> **NOTE**
515e41f4b71Sopenharmony_ci>
516e41f4b71Sopenharmony_ci> This API is supported since API version 12.
517e41f4b71Sopenharmony_ci
518e41f4b71Sopenharmony_ci**System API**: This is a system API.
519e41f4b71Sopenharmony_ci
520e41f4b71Sopenharmony_ci**Required permissions**: ohos.permission.MANAGE_USB_CONFIG
521e41f4b71Sopenharmony_ci
522e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
523e41f4b71Sopenharmony_ci
524e41f4b71Sopenharmony_ci**Parameters**
525e41f4b71Sopenharmony_ci
526e41f4b71Sopenharmony_ci| Name| Type                         | Mandatory| Description             |
527e41f4b71Sopenharmony_ci| ------ | ----------------------------- | ---- | ----------------- |
528e41f4b71Sopenharmony_ci| funcs  | [FunctionType](#functiontype) | Yes  | USB function list in numeric mask format.|
529e41f4b71Sopenharmony_ci
530e41f4b71Sopenharmony_ci**Error codes**
531e41f4b71Sopenharmony_ci
532e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
533e41f4b71Sopenharmony_ci
534e41f4b71Sopenharmony_ci| ID| Error Message                                                                                               |
535e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
536e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
537e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
538e41f4b71Sopenharmony_ci
539e41f4b71Sopenharmony_ci**Return value**
540e41f4b71Sopenharmony_ci
541e41f4b71Sopenharmony_ci| Type               | Description         |
542e41f4b71Sopenharmony_ci| ------------------- | ------------- |
543e41f4b71Sopenharmony_ci| Promise\<**void**\> | Promise used to return the result.|
544e41f4b71Sopenharmony_ci
545e41f4b71Sopenharmony_ci**Example**
546e41f4b71Sopenharmony_ci
547e41f4b71Sopenharmony_ci```ts
548e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
549e41f4b71Sopenharmony_cilet funcs: number = usbManager.FunctionType.HDC;
550e41f4b71Sopenharmony_ciusbManager.setDeviceFunctions(funcs).then(() => {
551e41f4b71Sopenharmony_ci    console.info('usb setDeviceFunctions successfully.');
552e41f4b71Sopenharmony_ci}).catch((err : BusinessError) => {
553e41f4b71Sopenharmony_ci    console.error('usb setDeviceFunctions failed: ' + err.code + ' message: ' + err.message);
554e41f4b71Sopenharmony_ci});
555e41f4b71Sopenharmony_ci```
556e41f4b71Sopenharmony_ci
557e41f4b71Sopenharmony_ci## getDeviceFunctions<sup>12+</sup>
558e41f4b71Sopenharmony_ci
559e41f4b71Sopenharmony_cigetDeviceFunctions(): FunctionType
560e41f4b71Sopenharmony_ci
561e41f4b71Sopenharmony_ciObtains the numeric mask combination for the USB function list in Device mode.
562e41f4b71Sopenharmony_ci
563e41f4b71Sopenharmony_ci> **NOTE**
564e41f4b71Sopenharmony_ci>
565e41f4b71Sopenharmony_ci> This API is supported since API version 12.
566e41f4b71Sopenharmony_ci
567e41f4b71Sopenharmony_ci**System API**: This is a system API.
568e41f4b71Sopenharmony_ci
569e41f4b71Sopenharmony_ci**Required permissions**: ohos.permission.MANAGE_USB_CONFIG
570e41f4b71Sopenharmony_ci
571e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
572e41f4b71Sopenharmony_ci
573e41f4b71Sopenharmony_ci**Error codes**
574e41f4b71Sopenharmony_ci
575e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
576e41f4b71Sopenharmony_ci
577e41f4b71Sopenharmony_ci| ID| Error Message                                                                       |
578e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------- |
579e41f4b71Sopenharmony_ci| 401      | Parameter error. No parameters are required.                                    |
580e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api. |
581e41f4b71Sopenharmony_ci
582e41f4b71Sopenharmony_ci**Return value**
583e41f4b71Sopenharmony_ci
584e41f4b71Sopenharmony_ci| Type                         | Description                             |
585e41f4b71Sopenharmony_ci| ----------------------------- | --------------------------------- |
586e41f4b71Sopenharmony_ci| [FunctionType](#functiontype) | Numeric mask combination for the USB function list.|
587e41f4b71Sopenharmony_ci
588e41f4b71Sopenharmony_ci**Example**
589e41f4b71Sopenharmony_ci
590e41f4b71Sopenharmony_ci```ts
591e41f4b71Sopenharmony_cilet ret: number = usbManager.getDeviceFunctions();
592e41f4b71Sopenharmony_ci```
593e41f4b71Sopenharmony_ci
594e41f4b71Sopenharmony_ci## getPortList<sup>12+</sup>
595e41f4b71Sopenharmony_ci
596e41f4b71Sopenharmony_cigetPortList(): Array\<USBPort\>
597e41f4b71Sopenharmony_ci
598e41f4b71Sopenharmony_ciObtains the list of all physical USB ports.
599e41f4b71Sopenharmony_ci
600e41f4b71Sopenharmony_ci> **NOTE**
601e41f4b71Sopenharmony_ci>
602e41f4b71Sopenharmony_ci> This API is supported since API version 12.
603e41f4b71Sopenharmony_ci
604e41f4b71Sopenharmony_ci**System API**: This is a system API.
605e41f4b71Sopenharmony_ci
606e41f4b71Sopenharmony_ci**Required permissions**: ohos.permission.MANAGE_USB_CONFIG
607e41f4b71Sopenharmony_ci
608e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
609e41f4b71Sopenharmony_ci
610e41f4b71Sopenharmony_ci**Error codes**
611e41f4b71Sopenharmony_ci
612e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
613e41f4b71Sopenharmony_ci
614e41f4b71Sopenharmony_ci| ID| Error Message                                                                                               |
615e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
616e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
617e41f4b71Sopenharmony_ci
618e41f4b71Sopenharmony_ci**Return value**
619e41f4b71Sopenharmony_ci
620e41f4b71Sopenharmony_ci| Type                      | Description                 |
621e41f4b71Sopenharmony_ci| -------------------------- | --------------------- |
622e41f4b71Sopenharmony_ci| Array<[USBPort](#usbport)> | List of physical USB ports.|
623e41f4b71Sopenharmony_ci
624e41f4b71Sopenharmony_ci**Example**
625e41f4b71Sopenharmony_ci
626e41f4b71Sopenharmony_ci```ts
627e41f4b71Sopenharmony_cilet ret: Array<usbManager.USBPort> = usbManager.getPortList();
628e41f4b71Sopenharmony_ci```
629e41f4b71Sopenharmony_ci
630e41f4b71Sopenharmony_ci## getPortSupportModes<sup>12+</sup>
631e41f4b71Sopenharmony_ci
632e41f4b71Sopenharmony_cigetPortSupportModes(portId: number): PortModeType
633e41f4b71Sopenharmony_ci
634e41f4b71Sopenharmony_ciObtains the mask combination for the supported mode list of a given USB port.
635e41f4b71Sopenharmony_ci
636e41f4b71Sopenharmony_ci**System API**: This is a system API.
637e41f4b71Sopenharmony_ci
638e41f4b71Sopenharmony_ci**Required permissions**: ohos.permission.MANAGE_USB_CONFIG
639e41f4b71Sopenharmony_ci
640e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
641e41f4b71Sopenharmony_ci
642e41f4b71Sopenharmony_ci**Parameters**
643e41f4b71Sopenharmony_ci
644e41f4b71Sopenharmony_ci| Name| Type  | Mandatory| Description    |
645e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------- |
646e41f4b71Sopenharmony_ci| portId | number | Yes  | Port number.|
647e41f4b71Sopenharmony_ci
648e41f4b71Sopenharmony_ci**Error codes**
649e41f4b71Sopenharmony_ci
650e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
651e41f4b71Sopenharmony_ci
652e41f4b71Sopenharmony_ci| ID| Error Message                                                                                               |
653e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
654e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
655e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
656e41f4b71Sopenharmony_ci
657e41f4b71Sopenharmony_ci**Return value**
658e41f4b71Sopenharmony_ci
659e41f4b71Sopenharmony_ci| Type                         | Description                      |
660e41f4b71Sopenharmony_ci| ----------------------------- | -------------------------- |
661e41f4b71Sopenharmony_ci| [PortModeType](#portmodetype) | Mask combination for the supported mode list.|
662e41f4b71Sopenharmony_ci
663e41f4b71Sopenharmony_ci**Example**
664e41f4b71Sopenharmony_ci
665e41f4b71Sopenharmony_ci```ts
666e41f4b71Sopenharmony_cilet ret: number = usbManager.getSupportedModes(0);
667e41f4b71Sopenharmony_ci```
668e41f4b71Sopenharmony_ci
669e41f4b71Sopenharmony_ci## setPortRoleTypes<sup>12+</sup>
670e41f4b71Sopenharmony_ci
671e41f4b71Sopenharmony_cisetPortRoleTypes(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise\<void\>
672e41f4b71Sopenharmony_ci
673e41f4b71Sopenharmony_ciSets the role types supported by a specified port, which can be **powerRole** (for charging) and **dataRole** (for data transfer).
674e41f4b71Sopenharmony_ci
675e41f4b71Sopenharmony_ci> **NOTE**
676e41f4b71Sopenharmony_ci>
677e41f4b71Sopenharmony_ci> This API is supported since API version 12.
678e41f4b71Sopenharmony_ci
679e41f4b71Sopenharmony_ci**System API**: This is a system API.
680e41f4b71Sopenharmony_ci
681e41f4b71Sopenharmony_ci**Required permissions**: ohos.permission.MANAGE_USB_CONFIG
682e41f4b71Sopenharmony_ci
683e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
684e41f4b71Sopenharmony_ci
685e41f4b71Sopenharmony_ci**Parameters**
686e41f4b71Sopenharmony_ci
687e41f4b71Sopenharmony_ci| Name   | Type                           | Mandatory| Description            |
688e41f4b71Sopenharmony_ci| --------- | ------------------------------- | ---- | ---------------- |
689e41f4b71Sopenharmony_ci| portId    | number                          | Yes  | Port number.        |
690e41f4b71Sopenharmony_ci| powerRole | [PowerRoleType](#powerroletype) | Yes  | Role for charging.    |
691e41f4b71Sopenharmony_ci| dataRole  | [DataRoleType](#dataroletype)   | Yes  | Role for data transfer.|
692e41f4b71Sopenharmony_ci
693e41f4b71Sopenharmony_ci**Error codes**
694e41f4b71Sopenharmony_ci
695e41f4b71Sopenharmony_ciFor details about the error codes, see [USB Service Error Codes](errorcode-usb.md).
696e41f4b71Sopenharmony_ci
697e41f4b71Sopenharmony_ci| ID| Error Message                                                                                               |
698e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
699e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
700e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
701e41f4b71Sopenharmony_ci| 14400003 | Unsupported operation. The current device does not support port role switching.                         |
702e41f4b71Sopenharmony_ci
703e41f4b71Sopenharmony_ci**Return value**
704e41f4b71Sopenharmony_ci
705e41f4b71Sopenharmony_ci| Type               | Description         |
706e41f4b71Sopenharmony_ci| ------------------- | ------------- |
707e41f4b71Sopenharmony_ci| Promise\<**void**\> | Promise used to return the result.|
708e41f4b71Sopenharmony_ci
709e41f4b71Sopenharmony_ci**Example**
710e41f4b71Sopenharmony_ci
711e41f4b71Sopenharmony_ci```ts
712e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
713e41f4b71Sopenharmony_cilet portId: number = 1;
714e41f4b71Sopenharmony_ciusbManager.setPortRoleTypes(portId, usbManager.PowerRoleType.SOURCE, usbManager.DataRoleType.HOST).then(() => {
715e41f4b71Sopenharmony_ci  console.info('usb setPortRoleTypes successfully.');
716e41f4b71Sopenharmony_ci}).catch((err : BusinessError) => {
717e41f4b71Sopenharmony_ci  console.error('usb setPortRoleTypes failed: ' + err.code + ' message: ' + err.message);
718e41f4b71Sopenharmony_ci});
719e41f4b71Sopenharmony_ci```
720e41f4b71Sopenharmony_ci
721e41f4b71Sopenharmony_ci## USBPort
722e41f4b71Sopenharmony_ci
723e41f4b71Sopenharmony_ciRepresents a USB port.
724e41f4b71Sopenharmony_ci
725e41f4b71Sopenharmony_ci**System API**: This is a system API.
726e41f4b71Sopenharmony_ci
727e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
728e41f4b71Sopenharmony_ci
729e41f4b71Sopenharmony_ci| Name          | Type                           | Mandatory| Description                               |
730e41f4b71Sopenharmony_ci| -------------- | ------------------------------- | ---- | ----------------------------------- |
731e41f4b71Sopenharmony_ci| id             | number                          | Yes  | Unique identifier of a USB port.                  |
732e41f4b71Sopenharmony_ci| supportedModes | [PortModeType](#portmodetype)   | Yes  | Numeric mask combination for the supported mode list.|
733e41f4b71Sopenharmony_ci| status         | [USBPortStatus](#usbportstatus) | Yes  | USB port role.                      |
734e41f4b71Sopenharmony_ci
735e41f4b71Sopenharmony_ci## USBPortStatus
736e41f4b71Sopenharmony_ci
737e41f4b71Sopenharmony_ciEnumerates USB port roles.
738e41f4b71Sopenharmony_ci
739e41f4b71Sopenharmony_ci**System API**: This is a system API.
740e41f4b71Sopenharmony_ci
741e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
742e41f4b71Sopenharmony_ci
743e41f4b71Sopenharmony_ci| Name            | Type  | Mandatory| Description                  |
744e41f4b71Sopenharmony_ci| ---------------- | ------ | ---- | ---------------------- |
745e41f4b71Sopenharmony_ci| currentMode      | number | Yes  | Current USB mode.       |
746e41f4b71Sopenharmony_ci| currentPowerRole | number | Yes  | Current power role.    |
747e41f4b71Sopenharmony_ci| currentDataRole  | number | Yes  | Current data role.|
748e41f4b71Sopenharmony_ci
749e41f4b71Sopenharmony_ci## FunctionType
750e41f4b71Sopenharmony_ci
751e41f4b71Sopenharmony_ciEnumerates USB device function types.
752e41f4b71Sopenharmony_ci
753e41f4b71Sopenharmony_ci**System API**: This is a system API.
754e41f4b71Sopenharmony_ci
755e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
756e41f4b71Sopenharmony_ci
757e41f4b71Sopenharmony_ci| Name        | Value | Description      |
758e41f4b71Sopenharmony_ci| ------------ | --- | ---------- |
759e41f4b71Sopenharmony_ci| NONE         | 0   | No function.|
760e41f4b71Sopenharmony_ci| ACM          | 1   | ACM function. |
761e41f4b71Sopenharmony_ci| ECM          | 2   | ECM function. |
762e41f4b71Sopenharmony_ci| HDC          | 4   | HDC function. |
763e41f4b71Sopenharmony_ci| MTP          | 8   | Media transmission.|
764e41f4b71Sopenharmony_ci| PTP          | 16  | Image transmission.|
765e41f4b71Sopenharmony_ci| RNDIS        | 32  | Network sharing.|
766e41f4b71Sopenharmony_ci| MIDI         | 64  | MIDI function.|
767e41f4b71Sopenharmony_ci| AUDIO_SOURCE | 128 | Audio function.|
768e41f4b71Sopenharmony_ci| NCM          | 256 | NCM transmission. |
769e41f4b71Sopenharmony_ci
770e41f4b71Sopenharmony_ci## PortModeType
771e41f4b71Sopenharmony_ci
772e41f4b71Sopenharmony_ciEnumerates USB port mode types.
773e41f4b71Sopenharmony_ci
774e41f4b71Sopenharmony_ci**System API**: This is a system API.
775e41f4b71Sopenharmony_ci
776e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
777e41f4b71Sopenharmony_ci
778e41f4b71Sopenharmony_ci| Name     | Value| Description                                                |
779e41f4b71Sopenharmony_ci| --------- | -- | ---------------------------------------------------- |
780e41f4b71Sopenharmony_ci| NONE      | 0  | None                                                |
781e41f4b71Sopenharmony_ci| UFP       | 1  | Upstream facing port, which functions as the sink of power supply.                            |
782e41f4b71Sopenharmony_ci| DFP       | 2  | Downstream facing port, which functions as the source of power supply.                            |
783e41f4b71Sopenharmony_ci| DRP       | 3  | Dynamic reconfiguration port (DRP), which can function as the DFP (host) or UFP (device). It is not supported currently.|
784e41f4b71Sopenharmony_ci| NUM_MODES | 4  | Not supported currently.                                        |
785e41f4b71Sopenharmony_ci
786e41f4b71Sopenharmony_ci## PowerRoleType
787e41f4b71Sopenharmony_ci
788e41f4b71Sopenharmony_ciEnumerates power role types.
789e41f4b71Sopenharmony_ci
790e41f4b71Sopenharmony_ci**System API**: This is a system API.
791e41f4b71Sopenharmony_ci
792e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
793e41f4b71Sopenharmony_ci
794e41f4b71Sopenharmony_ci| Name  | Value| Description      |
795e41f4b71Sopenharmony_ci| ------ | -- | ---------- |
796e41f4b71Sopenharmony_ci| NONE   | 0  | None      |
797e41f4b71Sopenharmony_ci| SOURCE | 1  | Power supply for external devices.|
798e41f4b71Sopenharmony_ci| SINK   | 2  | External power supply.|
799e41f4b71Sopenharmony_ci
800e41f4b71Sopenharmony_ci## DataRoleType
801e41f4b71Sopenharmony_ci
802e41f4b71Sopenharmony_ciEnumerates data role types.
803e41f4b71Sopenharmony_ci
804e41f4b71Sopenharmony_ci**System API**: This is a system API.
805e41f4b71Sopenharmony_ci
806e41f4b71Sopenharmony_ci**System capability**: SystemCapability.USB.USBManager
807e41f4b71Sopenharmony_ci
808e41f4b71Sopenharmony_ci| Name  | Value| Description        |
809e41f4b71Sopenharmony_ci| ------ | -- | ------------ |
810e41f4b71Sopenharmony_ci| NONE   | 0  | None        |
811e41f4b71Sopenharmony_ci| HOST   | 1  | USB host.|
812e41f4b71Sopenharmony_ci| DEVICE | 2  | USB device.|
813