1e41f4b71Sopenharmony_ci# @ohos.usbManager (USB管理)(系统接口)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci本模块主要提供管理USB设备的相关功能,包括主设备上查询USB设备列表、批量数据传输、控制命令传输、权限控制等;从设备上端口管理、功能切换及查询等。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **说明:**
6e41f4b71Sopenharmony_ci> 
7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8e41f4b71Sopenharmony_ci> 当前页面仅包含本模块的系统接口,其他公开接口参见[@ohos.usbManager (USB管理)](js-apis-usbManager.md)。
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci## 导入模块
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci```ts
13e41f4b71Sopenharmony_ciimport { usbManager } from '@kit.BasicServicesKit';
14e41f4b71Sopenharmony_ci```
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci## addRight <sup>(deprecated)</sup>
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ciaddRight(bundleName: string, deviceName: string): boolean
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci添加软件包访问设备的权限。系统应用默认拥有访问设备权限,调用此接口不会产生影响。
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ciusbManager.requestRight (#usbrequestright)会触发弹框请求用户授权;addRight不会触发弹框,而是直接添加软件包访问设备的权限。
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci**说明:**
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci> 从 API version 9开始支持,从API version 12开始废弃。建议使用 [addDeviceAccessRight](#adddeviceaccessright12) 替代。
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci**参数:**
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci| 参数名     | 类型   | 必填 | 说明         |
35e41f4b71Sopenharmony_ci| ---------- | ------ | ---- | ------------ |
36e41f4b71Sopenharmony_ci| deviceName | string | 是   | 设备名称。   |
37e41f4b71Sopenharmony_ci| bundleName | string | 是   | 软件包名称。 |
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci**错误码:**
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                |
44e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
45e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
46e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ci**返回值:**
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci| 类型    | 说明                                                                      |
51e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------------------- |
52e41f4b71Sopenharmony_ci| boolean | 返回权限添加结果。返回true表示权限添加成功;返回false则表示权限添加失败。 |
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_ci**示例:**
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci```ts
57e41f4b71Sopenharmony_cilet devicesName: string = "1-1";
58e41f4b71Sopenharmony_cilet bundleName: string = "com.example.hello";
59e41f4b71Sopenharmony_ciif (usbManager.addRight(bundleName, devicesName)) {
60e41f4b71Sopenharmony_ci  console.log(`Succeed in adding right`);
61e41f4b71Sopenharmony_ci}
62e41f4b71Sopenharmony_ci```
63e41f4b71Sopenharmony_ci
64e41f4b71Sopenharmony_ci## usbFunctionsFromString<sup>(deprecated)</sup>
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ciusbFunctionsFromString(funcs: string): number
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci在设备模式下,将字符串形式的USB功能列表转化为数字掩码。
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci**说明:**
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci> 从 API version 9开始支持,从API version 12开始废弃。建议使用 [getFunctionsFromString](#getfunctionsfromstring12) 替代。
73e41f4b71Sopenharmony_ci
74e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
75e41f4b71Sopenharmony_ci
76e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
77e41f4b71Sopenharmony_ci
78e41f4b71Sopenharmony_ci**参数:**
79e41f4b71Sopenharmony_ci
80e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                   |
81e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------- |
82e41f4b71Sopenharmony_ci| funcs  | string | 是   | 字符串形式的功能列表。 |
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci**错误码:**
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                |
89e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
90e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
91e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
92e41f4b71Sopenharmony_ci
93e41f4b71Sopenharmony_ci**返回值:**
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ci| 类型   | 说明               |
96e41f4b71Sopenharmony_ci| ------ | ------------------ |
97e41f4b71Sopenharmony_ci| number | 转化后的数字掩码。 |
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_ci**示例:**
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci```ts
102e41f4b71Sopenharmony_cilet funcs: string = "acm";
103e41f4b71Sopenharmony_cilet ret: number = usbManager.usbFunctionsFromString(funcs);
104e41f4b71Sopenharmony_ci```
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci## usbFunctionsToString<sup>(deprecated)</sup>
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ciusbFunctionsToString(funcs: FunctionType): string
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci在设备模式下,将数字掩码形式的USB功能列表转化为字符串。
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci**说明:**
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci> 从 API version 9开始支持,从API version 12开始废弃。建议使用 [getStringFromFunctions](#getstringfromfunctions12) 替代。
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci**参数:**
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ci| 参数名 | 类型                          | 必填 | 说明              |
123e41f4b71Sopenharmony_ci| ------ | ----------------------------- | ---- | ----------------- |
124e41f4b71Sopenharmony_ci| funcs  | [FunctionType](#functiontype) | 是   | USB功能数字掩码。 |
125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_ci**错误码:**
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
129e41f4b71Sopenharmony_ci
130e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                |
131e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
132e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
133e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
134e41f4b71Sopenharmony_ci
135e41f4b71Sopenharmony_ci**返回值:**
136e41f4b71Sopenharmony_ci
137e41f4b71Sopenharmony_ci| 类型   | 说明                           |
138e41f4b71Sopenharmony_ci| ------ | ------------------------------ |
139e41f4b71Sopenharmony_ci| string | 转化后的字符串形式的功能列表。 |
140e41f4b71Sopenharmony_ci
141e41f4b71Sopenharmony_ci**示例:**
142e41f4b71Sopenharmony_ci
143e41f4b71Sopenharmony_ci```ts
144e41f4b71Sopenharmony_cilet funcs: number = usbManager.FunctionType.ACM | usb.FunctionType.ECM;
145e41f4b71Sopenharmony_cilet ret: string = usbManager.usbFunctionsToString(funcs);
146e41f4b71Sopenharmony_ci```
147e41f4b71Sopenharmony_ci
148e41f4b71Sopenharmony_ci## setCurrentFunctions<sup>(deprecated)</sup>
149e41f4b71Sopenharmony_ci
150e41f4b71Sopenharmony_cisetCurrentFunctions(funcs: FunctionType): Promise\<void\>
151e41f4b71Sopenharmony_ci
152e41f4b71Sopenharmony_ci在设备模式下,设置当前的USB功能列表。
153e41f4b71Sopenharmony_ci
154e41f4b71Sopenharmony_ci**说明:**
155e41f4b71Sopenharmony_ci
156e41f4b71Sopenharmony_ci> 从 API version 9开始支持,从API version 12开始废弃。建议使用 [setDeviceFunctions](#setdevicefunctions12) 替代。
157e41f4b71Sopenharmony_ci
158e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
159e41f4b71Sopenharmony_ci
160e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
161e41f4b71Sopenharmony_ci
162e41f4b71Sopenharmony_ci**参数:**
163e41f4b71Sopenharmony_ci
164e41f4b71Sopenharmony_ci| 参数名 | 类型                          | 必填 | 说明              |
165e41f4b71Sopenharmony_ci| ------ | ----------------------------- | ---- | ----------------- |
166e41f4b71Sopenharmony_ci| funcs  | [FunctionType](#functiontype) | 是   | USB功能数字掩码。 |
167e41f4b71Sopenharmony_ci
168e41f4b71Sopenharmony_ci**错误码:**
169e41f4b71Sopenharmony_ci
170e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
171e41f4b71Sopenharmony_ci
172e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                |
173e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
174e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
175e41f4b71Sopenharmony_ci| 14400002 | Permission denied. The HDC is disabled by the system.                                                   |
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ci**返回值:**
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ci| 类型                | 说明          |
180e41f4b71Sopenharmony_ci| ------------------- | ------------- |
181e41f4b71Sopenharmony_ci| Promise\<**void**\> | Promise对象。 |
182e41f4b71Sopenharmony_ci
183e41f4b71Sopenharmony_ci**示例:**
184e41f4b71Sopenharmony_ci
185e41f4b71Sopenharmony_ci```ts
186e41f4b71Sopenharmony_ciimport {BusinessError} from '@kit.BasicServicesKit';
187e41f4b71Sopenharmony_cilet funcs: number = usbManager.FunctionType.HDC;
188e41f4b71Sopenharmony_ciusbManager.setCurrentFunctions(funcs).then(() => {
189e41f4b71Sopenharmony_ci    console.info('usb setCurrentFunctions successfully.');
190e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => {
191e41f4b71Sopenharmony_ci    console.error('usb setCurrentFunctions failed: ' + err.code + ' message: ' + err.message);
192e41f4b71Sopenharmony_ci});
193e41f4b71Sopenharmony_ci```
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_ci## getCurrentFunctions<sup>(deprecated)</sup>
196e41f4b71Sopenharmony_ci
197e41f4b71Sopenharmony_cigetCurrentFunctions(): FunctionType
198e41f4b71Sopenharmony_ci
199e41f4b71Sopenharmony_ci在设备模式下,获取当前的USB功能列表的数字组合掩码。
200e41f4b71Sopenharmony_ci
201e41f4b71Sopenharmony_ci**说明:**
202e41f4b71Sopenharmony_ci
203e41f4b71Sopenharmony_ci> 从 API version 9开始支持,从API version 12开始废弃。建议使用 [getDeviceFunctions](#getdevicefunctions12) 替代。
204e41f4b71Sopenharmony_ci
205e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
206e41f4b71Sopenharmony_ci
207e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
208e41f4b71Sopenharmony_ci
209e41f4b71Sopenharmony_ci**错误码:**
210e41f4b71Sopenharmony_ci
211e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
212e41f4b71Sopenharmony_ci
213e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                        |
214e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------- |
215e41f4b71Sopenharmony_ci| 401      | Parameter error. No parameters are required.                                    |
216e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api. |
217e41f4b71Sopenharmony_ci
218e41f4b71Sopenharmony_ci**返回值:**
219e41f4b71Sopenharmony_ci
220e41f4b71Sopenharmony_ci| 类型                          | 说明                              |
221e41f4b71Sopenharmony_ci| ----------------------------- | --------------------------------- |
222e41f4b71Sopenharmony_ci| [FunctionType](#functiontype) | 当前的USB功能列表的数字组合掩码。 |
223e41f4b71Sopenharmony_ci
224e41f4b71Sopenharmony_ci**示例:**
225e41f4b71Sopenharmony_ci
226e41f4b71Sopenharmony_ci```ts
227e41f4b71Sopenharmony_cilet ret: number = usbManager.getCurrentFunctions();
228e41f4b71Sopenharmony_ci```
229e41f4b71Sopenharmony_ci
230e41f4b71Sopenharmony_ci## getPorts<sup>(deprecated)</sup>
231e41f4b71Sopenharmony_ci
232e41f4b71Sopenharmony_cigetPorts(): Array\<USBPort\>
233e41f4b71Sopenharmony_ci
234e41f4b71Sopenharmony_ci获取所有物理USB端口描述信息。
235e41f4b71Sopenharmony_ci
236e41f4b71Sopenharmony_ci**说明:**
237e41f4b71Sopenharmony_ci
238e41f4b71Sopenharmony_ci> 从 API version 9开始支持,从API version 12开始废弃。建议使用 [getPortList](#getportlist12) 替代。
239e41f4b71Sopenharmony_ci
240e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
241e41f4b71Sopenharmony_ci
242e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
243e41f4b71Sopenharmony_ci
244e41f4b71Sopenharmony_ci**错误码:**
245e41f4b71Sopenharmony_ci
246e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
247e41f4b71Sopenharmony_ci
248e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                        |
249e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------- |
250e41f4b71Sopenharmony_ci| 401      | Parameter error. No parameters are required.                                    |
251e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api. |
252e41f4b71Sopenharmony_ci
253e41f4b71Sopenharmony_ci**返回值:**
254e41f4b71Sopenharmony_ci
255e41f4b71Sopenharmony_ci| 类型                       | 说明                  |
256e41f4b71Sopenharmony_ci| -------------------------- | --------------------- |
257e41f4b71Sopenharmony_ci| Array<[USBPort](#usbport)> | USB端口描述信息列表。 |
258e41f4b71Sopenharmony_ci
259e41f4b71Sopenharmony_ci**示例:**
260e41f4b71Sopenharmony_ci
261e41f4b71Sopenharmony_ci```ts
262e41f4b71Sopenharmony_cilet ret: Array<usbManager.USBPort> = usbManager.getPorts();
263e41f4b71Sopenharmony_ci```
264e41f4b71Sopenharmony_ci
265e41f4b71Sopenharmony_ci## getSupportedModes(deprecated)
266e41f4b71Sopenharmony_ci
267e41f4b71Sopenharmony_cigetSupportedModes(portId: number): PortModeType
268e41f4b71Sopenharmony_ci
269e41f4b71Sopenharmony_ci获取指定的端口支持的模式列表的组合掩码。
270e41f4b71Sopenharmony_ci
271e41f4b71Sopenharmony_ci**说明:**
272e41f4b71Sopenharmony_ci
273e41f4b71Sopenharmony_ci> 从 API version 9开始支持,从API version 12开始废弃。建议使用 [getPortSupportModes](#getportlist12) 替代。
274e41f4b71Sopenharmony_ci
275e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
276e41f4b71Sopenharmony_ci
277e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
278e41f4b71Sopenharmony_ci
279e41f4b71Sopenharmony_ci**参数:**
280e41f4b71Sopenharmony_ci
281e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明     |
282e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------- |
283e41f4b71Sopenharmony_ci| portId | number | 是   | 端口号。 |
284e41f4b71Sopenharmony_ci
285e41f4b71Sopenharmony_ci**错误码:**
286e41f4b71Sopenharmony_ci
287e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
288e41f4b71Sopenharmony_ci
289e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                |
290e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
291e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
292e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
293e41f4b71Sopenharmony_ci
294e41f4b71Sopenharmony_ci**返回值:**
295e41f4b71Sopenharmony_ci
296e41f4b71Sopenharmony_ci| 类型                          | 说明                       |
297e41f4b71Sopenharmony_ci| ----------------------------- | -------------------------- |
298e41f4b71Sopenharmony_ci| [PortModeType](#portmodetype) | 支持的模式列表的组合掩码。 |
299e41f4b71Sopenharmony_ci
300e41f4b71Sopenharmony_ci**示例:**
301e41f4b71Sopenharmony_ci
302e41f4b71Sopenharmony_ci```ts
303e41f4b71Sopenharmony_cilet ret: number = usbManager.getSupportedModes(0);
304e41f4b71Sopenharmony_ci```
305e41f4b71Sopenharmony_ci
306e41f4b71Sopenharmony_ci## setPortRoles<sup>(deprecated)</sup>
307e41f4b71Sopenharmony_ci
308e41f4b71Sopenharmony_cisetPortRoles(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise\<void\>
309e41f4b71Sopenharmony_ci
310e41f4b71Sopenharmony_ci设置指定的端口支持的角色模式,包含充电角色、数据传输角色。
311e41f4b71Sopenharmony_ci
312e41f4b71Sopenharmony_ci**说明:**
313e41f4b71Sopenharmony_ci
314e41f4b71Sopenharmony_ci> 从 API version 9开始支持,从API version 12开始废弃。建议使用 [setPortRoleTypes](#setportroletypes12) 替代。
315e41f4b71Sopenharmony_ci
316e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
317e41f4b71Sopenharmony_ci
318e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
319e41f4b71Sopenharmony_ci
320e41f4b71Sopenharmony_ci**参数:**
321e41f4b71Sopenharmony_ci
322e41f4b71Sopenharmony_ci| 参数名    | 类型                            | 必填 | 说明             |
323e41f4b71Sopenharmony_ci| --------- | ------------------------------- | ---- | ---------------- |
324e41f4b71Sopenharmony_ci| portId    | number                          | 是   | 端口号。         |
325e41f4b71Sopenharmony_ci| powerRole | [PowerRoleType](#powerroletype) | 是   | 充电的角色。     |
326e41f4b71Sopenharmony_ci| dataRole  | [DataRoleType](#dataroletype)   | 是   | 数据传输的角色。 |
327e41f4b71Sopenharmony_ci
328e41f4b71Sopenharmony_ci**错误码:**
329e41f4b71Sopenharmony_ci
330e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
331e41f4b71Sopenharmony_ci
332e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                |
333e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
334e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
335e41f4b71Sopenharmony_ci
336e41f4b71Sopenharmony_ci**返回值:**
337e41f4b71Sopenharmony_ci
338e41f4b71Sopenharmony_ci| 类型                | 说明          |
339e41f4b71Sopenharmony_ci| ------------------- | ------------- |
340e41f4b71Sopenharmony_ci| Promise\<**void**\> | Promise对象。 |
341e41f4b71Sopenharmony_ci
342e41f4b71Sopenharmony_ci**示例:**
343e41f4b71Sopenharmony_ci
344e41f4b71Sopenharmony_ci```ts
345e41f4b71Sopenharmony_ciimport {BusinessError} from '@kit.BasicServicesKit';
346e41f4b71Sopenharmony_cilet portId: number = 1;
347e41f4b71Sopenharmony_ciusbManager.setPortRoles(portId, usbManager.PowerRoleType.SOURCE, ususbManagerb.DataRoleType.HOST).then(() => {
348e41f4b71Sopenharmony_ci    console.info('usb setPortRoles successfully.');
349e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => {
350e41f4b71Sopenharmony_ci    console.error('usb setPortRoles failed: ' + err.code + ' message: ' + err.message);
351e41f4b71Sopenharmony_ci});
352e41f4b71Sopenharmony_ci```
353e41f4b71Sopenharmony_ci
354e41f4b71Sopenharmony_ci## addDeviceAccessRight<sup>12+</sup>
355e41f4b71Sopenharmony_ci
356e41f4b71Sopenharmony_ciaddDeviceAccessRight(tokenId: string, deviceName: string): boolean
357e41f4b71Sopenharmony_ci
358e41f4b71Sopenharmony_ci添加软件包访问设备的权限。系统应用默认拥有访问设备权限,调用此接口不会产生影响。
359e41f4b71Sopenharmony_ci
360e41f4b71Sopenharmony_ciusbManager.requestRight (#usbrequestright)会触发弹框请求用户授权;addDeviceAccessRight不会触发弹框,而是直接添加软件包访问设备的权限。
361e41f4b71Sopenharmony_ci
362e41f4b71Sopenharmony_ci**说明:**
363e41f4b71Sopenharmony_ci
364e41f4b71Sopenharmony_ci> 从 API version 12开始支持。
365e41f4b71Sopenharmony_ci
366e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
367e41f4b71Sopenharmony_ci
368e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MANAGE_USB_CONFIG
369e41f4b71Sopenharmony_ci
370e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
371e41f4b71Sopenharmony_ci
372e41f4b71Sopenharmony_ci**参数:**
373e41f4b71Sopenharmony_ci
374e41f4b71Sopenharmony_ci| 参数名     | 类型   | 必填 | 说明            |
375e41f4b71Sopenharmony_ci| ---------- | ------ | ---- | --------------- |
376e41f4b71Sopenharmony_ci| deviceName | string | 是   | 设备名称。      |
377e41f4b71Sopenharmony_ci| tokenId    | string | 是   | 软件包tokenId。 |
378e41f4b71Sopenharmony_ci
379e41f4b71Sopenharmony_ci**错误码:**
380e41f4b71Sopenharmony_ci
381e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
382e41f4b71Sopenharmony_ci
383e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                |
384e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
385e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
386e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
387e41f4b71Sopenharmony_ci
388e41f4b71Sopenharmony_ci**返回值:**
389e41f4b71Sopenharmony_ci
390e41f4b71Sopenharmony_ci| 类型    | 说明                                                                      |
391e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------------------- |
392e41f4b71Sopenharmony_ci| boolean | 返回权限添加结果。返回true表示权限添加成功;返回false则表示权限添加失败。 |
393e41f4b71Sopenharmony_ci
394e41f4b71Sopenharmony_ci**示例:**
395e41f4b71Sopenharmony_ci
396e41f4b71Sopenharmony_ci```ts
397e41f4b71Sopenharmony_ciimport bundleManager from '@ohos.bundle.bundleManager';
398e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
399e41f4b71Sopenharmony_cilet devicesName: string = "1-1";
400e41f4b71Sopenharmony_cilet tokenId: string = "";
401e41f4b71Sopenharmony_ci
402e41f4b71Sopenharmony_ci  try {
403e41f4b71Sopenharmony_ci    let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;
404e41f4b71Sopenharmony_ci    bundleManager.getBundleInfoForSelf(bundleFlags).then((bundleInfo) => {
405e41f4b71Sopenharmony_ci      console.info('testTag', 'getBundleInfoForSelf successfully. Data: %{public}s', JSON.stringify(bundleInfo));
406e41f4b71Sopenharmony_ci      let token = bundleInfo.appInfo.accessTokenId;
407e41f4b71Sopenharmony_ci      tokenId = token.toString();
408e41f4b71Sopenharmony_ci      if (usbManager.addDeviceAccessRight(tokenId, devicesName)) {
409e41f4b71Sopenharmony_ci        console.log(`Succeed in adding right`);
410e41f4b71Sopenharmony_ci      }
411e41f4b71Sopenharmony_ci    }).catch((err : BusinessError) => {
412e41f4b71Sopenharmony_ci      console.error('testTag getBundleInfoForSelf failed' );
413e41f4b71Sopenharmony_ci    });
414e41f4b71Sopenharmony_ci  } catch (err) {
415e41f4b71Sopenharmony_ci    console.error('testTag failed');
416e41f4b71Sopenharmony_ci  }
417e41f4b71Sopenharmony_ci```
418e41f4b71Sopenharmony_ci
419e41f4b71Sopenharmony_ci## getFunctionsFromString<sup>12+</sup>
420e41f4b71Sopenharmony_ci
421e41f4b71Sopenharmony_cigetFunctionsFromString(funcs: string): number
422e41f4b71Sopenharmony_ci
423e41f4b71Sopenharmony_ci在设备模式下,将字符串形式的USB功能列表转化为数字掩码。
424e41f4b71Sopenharmony_ci
425e41f4b71Sopenharmony_ci**说明:**
426e41f4b71Sopenharmony_ci
427e41f4b71Sopenharmony_ci> 从 API version 12开始支持。
428e41f4b71Sopenharmony_ci
429e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
430e41f4b71Sopenharmony_ci
431e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MANAGE_USB_CONFIG
432e41f4b71Sopenharmony_ci
433e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
434e41f4b71Sopenharmony_ci
435e41f4b71Sopenharmony_ci**参数:**
436e41f4b71Sopenharmony_ci
437e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                   |
438e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------- |
439e41f4b71Sopenharmony_ci| funcs  | string | 是   | 字符串形式的功能列表。 |
440e41f4b71Sopenharmony_ci
441e41f4b71Sopenharmony_ci**错误码:**
442e41f4b71Sopenharmony_ci
443e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
444e41f4b71Sopenharmony_ci
445e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                        |
446e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------- |
447e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
448e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api. |
449e41f4b71Sopenharmony_ci
450e41f4b71Sopenharmony_ci**返回值:**
451e41f4b71Sopenharmony_ci
452e41f4b71Sopenharmony_ci| 类型   | 说明               |
453e41f4b71Sopenharmony_ci| ------ | ------------------ |
454e41f4b71Sopenharmony_ci| number | 转化后的数字掩码。 |
455e41f4b71Sopenharmony_ci
456e41f4b71Sopenharmony_ci**示例:**
457e41f4b71Sopenharmony_ci
458e41f4b71Sopenharmony_ci```ts
459e41f4b71Sopenharmony_cilet funcs: string = "acm";
460e41f4b71Sopenharmony_cilet ret: number = usbManager.getFunctionsFromString(funcs);
461e41f4b71Sopenharmony_ci```
462e41f4b71Sopenharmony_ci
463e41f4b71Sopenharmony_ci## getStringFromFunctions<sup>12+</sup>
464e41f4b71Sopenharmony_ci
465e41f4b71Sopenharmony_cigetStringFromFunctions(funcs: FunctionType): string
466e41f4b71Sopenharmony_ci
467e41f4b71Sopenharmony_ci在设备模式下,将数字掩码形式的USB功能列表转化为字符串。
468e41f4b71Sopenharmony_ci
469e41f4b71Sopenharmony_ci**说明:**
470e41f4b71Sopenharmony_ci
471e41f4b71Sopenharmony_ci> 从 API version 12开始支持。
472e41f4b71Sopenharmony_ci
473e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
474e41f4b71Sopenharmony_ci
475e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MANAGE_USB_CONFIG
476e41f4b71Sopenharmony_ci
477e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
478e41f4b71Sopenharmony_ci
479e41f4b71Sopenharmony_ci**参数:**
480e41f4b71Sopenharmony_ci
481e41f4b71Sopenharmony_ci| 参数名 | 类型                          | 必填 | 说明              |
482e41f4b71Sopenharmony_ci| ------ | ----------------------------- | ---- | ----------------- |
483e41f4b71Sopenharmony_ci| funcs  | [FunctionType](#functiontype) | 是   | USB功能数字掩码。 |
484e41f4b71Sopenharmony_ci
485e41f4b71Sopenharmony_ci**错误码:**
486e41f4b71Sopenharmony_ci
487e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
488e41f4b71Sopenharmony_ci
489e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                |
490e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
491e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
492e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
493e41f4b71Sopenharmony_ci
494e41f4b71Sopenharmony_ci**返回值:**
495e41f4b71Sopenharmony_ci
496e41f4b71Sopenharmony_ci| 类型   | 说明                           |
497e41f4b71Sopenharmony_ci| ------ | ------------------------------ |
498e41f4b71Sopenharmony_ci| string | 转化后的字符串形式的功能列表。 |
499e41f4b71Sopenharmony_ci
500e41f4b71Sopenharmony_ci**示例:**
501e41f4b71Sopenharmony_ci
502e41f4b71Sopenharmony_ci```ts
503e41f4b71Sopenharmony_cilet funcs: number = usbManager.FunctionType.ACM | usbManager.FunctionType.ECM;
504e41f4b71Sopenharmony_cilet ret: string = usbManager.getStringFromFunctions(funcs);
505e41f4b71Sopenharmony_ci```
506e41f4b71Sopenharmony_ci
507e41f4b71Sopenharmony_ci## setDeviceFunctions<sup>12+</sup>
508e41f4b71Sopenharmony_ci
509e41f4b71Sopenharmony_cisetDeviceFunctions(funcs: FunctionType): Promise\<void\>
510e41f4b71Sopenharmony_ci
511e41f4b71Sopenharmony_ci在设备模式下,设置当前的USB功能列表。
512e41f4b71Sopenharmony_ci
513e41f4b71Sopenharmony_ci**说明:**
514e41f4b71Sopenharmony_ci
515e41f4b71Sopenharmony_ci> 从 API version 12开始支持。
516e41f4b71Sopenharmony_ci
517e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
518e41f4b71Sopenharmony_ci
519e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MANAGE_USB_CONFIG
520e41f4b71Sopenharmony_ci
521e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
522e41f4b71Sopenharmony_ci
523e41f4b71Sopenharmony_ci**参数:**
524e41f4b71Sopenharmony_ci
525e41f4b71Sopenharmony_ci| 参数名 | 类型                          | 必填 | 说明              |
526e41f4b71Sopenharmony_ci| ------ | ----------------------------- | ---- | ----------------- |
527e41f4b71Sopenharmony_ci| funcs  | [FunctionType](#functiontype) | 是   | USB功能数字掩码。 |
528e41f4b71Sopenharmony_ci
529e41f4b71Sopenharmony_ci**错误码:**
530e41f4b71Sopenharmony_ci
531e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
532e41f4b71Sopenharmony_ci
533e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                |
534e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
535e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
536e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
537e41f4b71Sopenharmony_ci
538e41f4b71Sopenharmony_ci**返回值:**
539e41f4b71Sopenharmony_ci
540e41f4b71Sopenharmony_ci| 类型                | 说明          |
541e41f4b71Sopenharmony_ci| ------------------- | ------------- |
542e41f4b71Sopenharmony_ci| Promise\<**void**\> | Promise对象。 |
543e41f4b71Sopenharmony_ci
544e41f4b71Sopenharmony_ci**示例:**
545e41f4b71Sopenharmony_ci
546e41f4b71Sopenharmony_ci```ts
547e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
548e41f4b71Sopenharmony_cilet funcs: number = usbManager.FunctionType.HDC;
549e41f4b71Sopenharmony_ciusbManager.setDeviceFunctions(funcs).then(() => {
550e41f4b71Sopenharmony_ci    console.info('usb setDeviceFunctions successfully.');
551e41f4b71Sopenharmony_ci}).catch((err : BusinessError) => {
552e41f4b71Sopenharmony_ci    console.error('usb setDeviceFunctions failed: ' + err.code + ' message: ' + err.message);
553e41f4b71Sopenharmony_ci});
554e41f4b71Sopenharmony_ci```
555e41f4b71Sopenharmony_ci
556e41f4b71Sopenharmony_ci## getDeviceFunctions<sup>12+</sup>
557e41f4b71Sopenharmony_ci
558e41f4b71Sopenharmony_cigetDeviceFunctions(): FunctionType
559e41f4b71Sopenharmony_ci
560e41f4b71Sopenharmony_ci在设备模式下,获取当前的USB功能列表的数字组合掩码。
561e41f4b71Sopenharmony_ci
562e41f4b71Sopenharmony_ci**说明:**
563e41f4b71Sopenharmony_ci
564e41f4b71Sopenharmony_ci> 从 API version 12开始支持。
565e41f4b71Sopenharmony_ci
566e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
567e41f4b71Sopenharmony_ci
568e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MANAGE_USB_CONFIG
569e41f4b71Sopenharmony_ci
570e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
571e41f4b71Sopenharmony_ci
572e41f4b71Sopenharmony_ci**错误码:**
573e41f4b71Sopenharmony_ci
574e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
575e41f4b71Sopenharmony_ci
576e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                        |
577e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------- |
578e41f4b71Sopenharmony_ci| 401      | Parameter error. No parameters are required.                                    |
579e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api. |
580e41f4b71Sopenharmony_ci
581e41f4b71Sopenharmony_ci**返回值:**
582e41f4b71Sopenharmony_ci
583e41f4b71Sopenharmony_ci| 类型                          | 说明                              |
584e41f4b71Sopenharmony_ci| ----------------------------- | --------------------------------- |
585e41f4b71Sopenharmony_ci| [FunctionType](#functiontype) | 当前的USB功能列表的数字组合掩码。 |
586e41f4b71Sopenharmony_ci
587e41f4b71Sopenharmony_ci**示例:**
588e41f4b71Sopenharmony_ci
589e41f4b71Sopenharmony_ci```ts
590e41f4b71Sopenharmony_cilet ret: number = usbManager.getDeviceFunctions();
591e41f4b71Sopenharmony_ci```
592e41f4b71Sopenharmony_ci
593e41f4b71Sopenharmony_ci## getPortList<sup>12+</sup>
594e41f4b71Sopenharmony_ci
595e41f4b71Sopenharmony_cigetPortList(): Array\<USBPort\>
596e41f4b71Sopenharmony_ci
597e41f4b71Sopenharmony_ci获取所有物理USB端口描述信息。
598e41f4b71Sopenharmony_ci
599e41f4b71Sopenharmony_ci**说明:**
600e41f4b71Sopenharmony_ci
601e41f4b71Sopenharmony_ci> 从 API version 12开始支持。
602e41f4b71Sopenharmony_ci
603e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
604e41f4b71Sopenharmony_ci
605e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MANAGE_USB_CONFIG
606e41f4b71Sopenharmony_ci
607e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
608e41f4b71Sopenharmony_ci
609e41f4b71Sopenharmony_ci**错误码:**
610e41f4b71Sopenharmony_ci
611e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
612e41f4b71Sopenharmony_ci
613e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                |
614e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
615e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
616e41f4b71Sopenharmony_ci
617e41f4b71Sopenharmony_ci**返回值:**
618e41f4b71Sopenharmony_ci
619e41f4b71Sopenharmony_ci| 类型                       | 说明                  |
620e41f4b71Sopenharmony_ci| -------------------------- | --------------------- |
621e41f4b71Sopenharmony_ci| Array<[USBPort](#usbport)> | USB端口描述信息列表。 |
622e41f4b71Sopenharmony_ci
623e41f4b71Sopenharmony_ci**示例:**
624e41f4b71Sopenharmony_ci
625e41f4b71Sopenharmony_ci```ts
626e41f4b71Sopenharmony_cilet ret: Array<usbManager.USBPort> = usbManager.getPortList();
627e41f4b71Sopenharmony_ci```
628e41f4b71Sopenharmony_ci
629e41f4b71Sopenharmony_ci## getPortSupportModes<sup>12+</sup>
630e41f4b71Sopenharmony_ci
631e41f4b71Sopenharmony_cigetPortSupportModes(portId: number): PortModeType
632e41f4b71Sopenharmony_ci
633e41f4b71Sopenharmony_ci获取指定的端口支持的模式列表的组合掩码。
634e41f4b71Sopenharmony_ci
635e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
636e41f4b71Sopenharmony_ci
637e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MANAGE_USB_CONFIG
638e41f4b71Sopenharmony_ci
639e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
640e41f4b71Sopenharmony_ci
641e41f4b71Sopenharmony_ci**参数:**
642e41f4b71Sopenharmony_ci
643e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明     |
644e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------- |
645e41f4b71Sopenharmony_ci| portId | number | 是   | 端口号。 |
646e41f4b71Sopenharmony_ci
647e41f4b71Sopenharmony_ci**错误码:**
648e41f4b71Sopenharmony_ci
649e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
650e41f4b71Sopenharmony_ci
651e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                |
652e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
653e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
654e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
655e41f4b71Sopenharmony_ci
656e41f4b71Sopenharmony_ci**返回值:**
657e41f4b71Sopenharmony_ci
658e41f4b71Sopenharmony_ci| 类型                          | 说明                       |
659e41f4b71Sopenharmony_ci| ----------------------------- | -------------------------- |
660e41f4b71Sopenharmony_ci| [PortModeType](#portmodetype) | 支持的模式列表的组合掩码。 |
661e41f4b71Sopenharmony_ci
662e41f4b71Sopenharmony_ci**示例:**
663e41f4b71Sopenharmony_ci
664e41f4b71Sopenharmony_ci```ts
665e41f4b71Sopenharmony_cilet ret: number = usbManager.getSupportedModes(0);
666e41f4b71Sopenharmony_ci```
667e41f4b71Sopenharmony_ci
668e41f4b71Sopenharmony_ci## setPortRoleTypes<sup>12+</sup>
669e41f4b71Sopenharmony_ci
670e41f4b71Sopenharmony_cisetPortRoleTypes(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise\<void\>
671e41f4b71Sopenharmony_ci
672e41f4b71Sopenharmony_ci设置指定的端口支持的角色模式,包含充电角色、数据传输角色。
673e41f4b71Sopenharmony_ci
674e41f4b71Sopenharmony_ci**说明:**
675e41f4b71Sopenharmony_ci
676e41f4b71Sopenharmony_ci> 从 API version 12开始支持。
677e41f4b71Sopenharmony_ci
678e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
679e41f4b71Sopenharmony_ci
680e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MANAGE_USB_CONFIG
681e41f4b71Sopenharmony_ci
682e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
683e41f4b71Sopenharmony_ci
684e41f4b71Sopenharmony_ci**参数:**
685e41f4b71Sopenharmony_ci
686e41f4b71Sopenharmony_ci| 参数名    | 类型                            | 必填 | 说明             |
687e41f4b71Sopenharmony_ci| --------- | ------------------------------- | ---- | ---------------- |
688e41f4b71Sopenharmony_ci| portId    | number                          | 是   | 端口号。         |
689e41f4b71Sopenharmony_ci| powerRole | [PowerRoleType](#powerroletype) | 是   | 充电的角色。     |
690e41f4b71Sopenharmony_ci| dataRole  | [DataRoleType](#dataroletype)   | 是   | 数据传输的角色。 |
691e41f4b71Sopenharmony_ci
692e41f4b71Sopenharmony_ci**错误码:**
693e41f4b71Sopenharmony_ci
694e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[USB服务错误码](errorcode-usb.md)。
695e41f4b71Sopenharmony_ci
696e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                |
697e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------------------------------------------- |
698e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
699e41f4b71Sopenharmony_ci| 202      | Permission denied. Normal application do not have permission to use system api.                         |
700e41f4b71Sopenharmony_ci| 14400003 | Unsupported operation. The current device does not support port role switching.                         |
701e41f4b71Sopenharmony_ci
702e41f4b71Sopenharmony_ci**返回值:**
703e41f4b71Sopenharmony_ci
704e41f4b71Sopenharmony_ci| 类型                | 说明          |
705e41f4b71Sopenharmony_ci| ------------------- | ------------- |
706e41f4b71Sopenharmony_ci| Promise\<**void**\> | Promise对象。 |
707e41f4b71Sopenharmony_ci
708e41f4b71Sopenharmony_ci**示例:**
709e41f4b71Sopenharmony_ci
710e41f4b71Sopenharmony_ci```ts
711e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
712e41f4b71Sopenharmony_cilet portId: number = 1;
713e41f4b71Sopenharmony_ciusbManager.setPortRoleTypes(portId, usbManager.PowerRoleType.SOURCE, usbManager.DataRoleType.HOST).then(() => {
714e41f4b71Sopenharmony_ci  console.info('usb setPortRoleTypes successfully.');
715e41f4b71Sopenharmony_ci}).catch((err : BusinessError) => {
716e41f4b71Sopenharmony_ci  console.error('usb setPortRoleTypes failed: ' + err.code + ' message: ' + err.message);
717e41f4b71Sopenharmony_ci});
718e41f4b71Sopenharmony_ci```
719e41f4b71Sopenharmony_ci
720e41f4b71Sopenharmony_ci## USBPort
721e41f4b71Sopenharmony_ci
722e41f4b71Sopenharmony_ciUSB设备端口。
723e41f4b71Sopenharmony_ci
724e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
725e41f4b71Sopenharmony_ci
726e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.USB.USBManager
727e41f4b71Sopenharmony_ci
728e41f4b71Sopenharmony_ci| 名称           | 类型                            | 必填 | 说明                                |
729e41f4b71Sopenharmony_ci| -------------- | ------------------------------- | ---- | ----------------------------------- |
730e41f4b71Sopenharmony_ci| id             | number                          | 是   | USB端口唯一标识。                   |
731e41f4b71Sopenharmony_ci| supportedModes | [PortModeType](#portmodetype)   | 是   | USB端口所支持的模式的数字组合掩码。 |
732e41f4b71Sopenharmony_ci| status         | [USBPortStatus](#usbportstatus) | 是   | USB端口角色。                       |
733e41f4b71Sopenharmony_ci
734e41f4b71Sopenharmony_ci## USBPortStatus
735e41f4b71Sopenharmony_ci
736e41f4b71Sopenharmony_ciUSB设备端口角色信息。
737e41f4b71Sopenharmony_ci
738e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
739e41f4b71Sopenharmony_ci
740e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.USB.USBManager
741e41f4b71Sopenharmony_ci
742e41f4b71Sopenharmony_ci| 名称             | 类型   | 必填 | 说明                   |
743e41f4b71Sopenharmony_ci| ---------------- | ------ | ---- | ---------------------- |
744e41f4b71Sopenharmony_ci| currentMode      | number | 是   | 当前的USB模式。        |
745e41f4b71Sopenharmony_ci| currentPowerRole | number | 是   | 当前设备充电模式。     |
746e41f4b71Sopenharmony_ci| currentDataRole  | number | 是   | 当前设备数据传输模式。 |
747e41f4b71Sopenharmony_ci
748e41f4b71Sopenharmony_ci## FunctionType
749e41f4b71Sopenharmony_ci
750e41f4b71Sopenharmony_ciUSB设备侧功能。
751e41f4b71Sopenharmony_ci
752e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
753e41f4b71Sopenharmony_ci
754e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.USB.USBManager
755e41f4b71Sopenharmony_ci
756e41f4b71Sopenharmony_ci| 名称         | 值  | 说明       |
757e41f4b71Sopenharmony_ci| ------------ | --- | ---------- |
758e41f4b71Sopenharmony_ci| NONE         | 0   | 没有功能。 |
759e41f4b71Sopenharmony_ci| ACM          | 1   | acm功能。  |
760e41f4b71Sopenharmony_ci| ECM          | 2   | ecm功能。  |
761e41f4b71Sopenharmony_ci| HDC          | 4   | hdc功能。  |
762e41f4b71Sopenharmony_ci| MTP          | 8   | 媒体传输。 |
763e41f4b71Sopenharmony_ci| PTP          | 16  | 图片传输。 |
764e41f4b71Sopenharmony_ci| RNDIS        | 32  | 网络共享。 |
765e41f4b71Sopenharmony_ci| MIDI         | 64  | midi功能。 |
766e41f4b71Sopenharmony_ci| AUDIO_SOURCE | 128 | 音频功能。 |
767e41f4b71Sopenharmony_ci| NCM          | 256 | ncm传输。  |
768e41f4b71Sopenharmony_ci
769e41f4b71Sopenharmony_ci## PortModeType
770e41f4b71Sopenharmony_ci
771e41f4b71Sopenharmony_ciUSB端口模式类型。
772e41f4b71Sopenharmony_ci
773e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
774e41f4b71Sopenharmony_ci
775e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.USB.USBManager
776e41f4b71Sopenharmony_ci
777e41f4b71Sopenharmony_ci| 名称      | 值 | 说明                                                 |
778e41f4b71Sopenharmony_ci| --------- | -- | ---------------------------------------------------- |
779e41f4b71Sopenharmony_ci| NONE      | 0  | 无。                                                 |
780e41f4b71Sopenharmony_ci| UFP       | 1  | 数据上行,需要外部供电。                             |
781e41f4b71Sopenharmony_ci| DFP       | 2  | 数据下行,对外提供电源。                             |
782e41f4b71Sopenharmony_ci| DRP       | 3  | 既可以做DFP(Host),也可以做UFP(Device),当前不支持。 |
783e41f4b71Sopenharmony_ci| NUM_MODES | 4  | 当前不支持。                                         |
784e41f4b71Sopenharmony_ci
785e41f4b71Sopenharmony_ci## PowerRoleType
786e41f4b71Sopenharmony_ci
787e41f4b71Sopenharmony_ci电源角色类型。
788e41f4b71Sopenharmony_ci
789e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
790e41f4b71Sopenharmony_ci
791e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.USB.USBManager
792e41f4b71Sopenharmony_ci
793e41f4b71Sopenharmony_ci| 名称   | 值 | 说明       |
794e41f4b71Sopenharmony_ci| ------ | -- | ---------- |
795e41f4b71Sopenharmony_ci| NONE   | 0  | 无。       |
796e41f4b71Sopenharmony_ci| SOURCE | 1  | 对外提供电源。 |
797e41f4b71Sopenharmony_ci| SINK   | 2  | 需要外部供电。 |
798e41f4b71Sopenharmony_ci
799e41f4b71Sopenharmony_ci## DataRoleType
800e41f4b71Sopenharmony_ci
801e41f4b71Sopenharmony_ci数据角色类型。
802e41f4b71Sopenharmony_ci
803e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
804e41f4b71Sopenharmony_ci
805e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.USB.USBManager
806e41f4b71Sopenharmony_ci
807e41f4b71Sopenharmony_ci| 名称   | 值 | 说明         |
808e41f4b71Sopenharmony_ci| ------ | -- | ------------ |
809e41f4b71Sopenharmony_ci| NONE   | 0  | 无。         |
810e41f4b71Sopenharmony_ci| HOST   | 1  | 主设备角色。 |
811e41f4b71Sopenharmony_ci| DEVICE | 2  | 从设备角色。 |
812e41f4b71Sopenharmony_ci
813