1e41f4b71Sopenharmony_ci# @ohos.usb (USB管理)(系统接口)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci本模块主要提供管理USB设备的相关功能,包括查询USB设备列表、批量数据传输、控制命令传输、权限控制等。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci>  **说明:**
6e41f4b71Sopenharmony_ci> 
7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8e41f4b71Sopenharmony_ci>
9e41f4b71Sopenharmony_ci> 从API version 9开始,该接口不再维护,推荐使用新接口[`@ohos.usbManager`](js-apis-usbManager.md)。
10e41f4b71Sopenharmony_ci>
11e41f4b71Sopenharmony_ci> 当前页面仅包含本模块的系统接口,其他公开接口参见[@ohos.usb (USB管理)(已停止维护)](js-apis-usb-deprecated.md)。
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci## 导入模块
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci```js
16e41f4b71Sopenharmony_ciimport usb from "@ohos.usb";
17e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base';
18e41f4b71Sopenharmony_ci```
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci## usb.usbFunctionsFromString<sup>9+</sup>
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ciusbFunctionsFromString(funcs: string): number
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci在设备模式下,将字符串形式的USB功能列表转化为数字掩码。
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci**参数:**
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                   |
33e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------- |
34e41f4b71Sopenharmony_ci| funcs  | string | 是   | 字符串形式的功能列表。 |
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci**返回值:**
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci| 类型   | 说明               |
39e41f4b71Sopenharmony_ci| ------ | ------------------ |
40e41f4b71Sopenharmony_ci| number | 转化后的数字掩码。 |
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_ci**示例:**
43e41f4b71Sopenharmony_ci
44e41f4b71Sopenharmony_ci```js
45e41f4b71Sopenharmony_cilet funcs = "acm";
46e41f4b71Sopenharmony_cilet ret = usb.usbFunctionsFromString(funcs);
47e41f4b71Sopenharmony_ci```
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci## usb.usbFunctionsToString<sup>9+</sup>
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ciusbFunctionsToString(funcs: FunctionType): string
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci在设备模式下,将数字掩码形式的USB功能列表转化为字符串。
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci**参数:**
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci| 参数名 | 类型                           | 必填 | 说明              |
62e41f4b71Sopenharmony_ci| ------ | ------------------------------ | ---- | ----------------- |
63e41f4b71Sopenharmony_ci| funcs  | [FunctionType](#functiontype9) | 是   | USB功能数字掩码。 |
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci**返回值:**
66e41f4b71Sopenharmony_ci
67e41f4b71Sopenharmony_ci| 类型   | 说明                           |
68e41f4b71Sopenharmony_ci| ------ | ------------------------------ |
69e41f4b71Sopenharmony_ci| string | 转化后的字符串形式的功能列表。 |
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ci**示例:**
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci```js
74e41f4b71Sopenharmony_cilet funcs = usb.FunctionType.ACM | usb.FunctionType.ECM;
75e41f4b71Sopenharmony_cilet ret = usb.usbFunctionsToString(funcs);
76e41f4b71Sopenharmony_ci```
77e41f4b71Sopenharmony_ci
78e41f4b71Sopenharmony_ci## usb.setCurrentFunctions<sup>9+</sup>
79e41f4b71Sopenharmony_ci
80e41f4b71Sopenharmony_cisetCurrentFunctions(funcs: FunctionType): Promise\<boolean\>
81e41f4b71Sopenharmony_ci
82e41f4b71Sopenharmony_ci在设备模式下,设置当前的USB功能列表。
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ci**参数:**
89e41f4b71Sopenharmony_ci
90e41f4b71Sopenharmony_ci| 参数名 | 类型                           | 必填 | 说明              |
91e41f4b71Sopenharmony_ci| ------ | ------------------------------ | ---- | ----------------- |
92e41f4b71Sopenharmony_ci| funcs  | [FunctionType](#functiontype9) | 是   | USB功能数字掩码。 |
93e41f4b71Sopenharmony_ci
94e41f4b71Sopenharmony_ci**返回值:**
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci| 类型               | 说明                                                         |
97e41f4b71Sopenharmony_ci| ------------------ | ------------------------------------------------------------ |
98e41f4b71Sopenharmony_ci| Promise\<boolean\> | Promise对象,返回设置成功与否的结果。true表示设置成功,false表示设置失败。 |
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci**示例:**
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ci```js
103e41f4b71Sopenharmony_cilet funcs : number = usb.FunctionType.HDC;
104e41f4b71Sopenharmony_ciusb.setCurrentFunctions(funcs).then(() => {
105e41f4b71Sopenharmony_ci    console.info('usb setCurrentFunctions successfully.');
106e41f4b71Sopenharmony_ci}).catch((err : BusinessError) => {
107e41f4b71Sopenharmony_ci    console.error('usb setCurrentFunctions failed: ' + err.code + ' message: ' + err.message);
108e41f4b71Sopenharmony_ci});
109e41f4b71Sopenharmony_ci```
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ci## usb.getCurrentFunctions<sup>9+</sup>
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_cigetCurrentFunctions(): FunctionType
114e41f4b71Sopenharmony_ci
115e41f4b71Sopenharmony_ci在设备模式下,获取当前的USB功能列表的数字组合掩码。
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci**返回值:**
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_ci| 类型                           | 说明                              |
124e41f4b71Sopenharmony_ci| ------------------------------ | --------------------------------- |
125e41f4b71Sopenharmony_ci| [FunctionType](#functiontype9) | 当前的USB功能列表的数字组合掩码。 |
126e41f4b71Sopenharmony_ci
127e41f4b71Sopenharmony_ci**示例:**
128e41f4b71Sopenharmony_ci
129e41f4b71Sopenharmony_ci```js
130e41f4b71Sopenharmony_cilet ret = usb.getCurrentFunctions();
131e41f4b71Sopenharmony_ci```
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_ci## usb.getPorts<sup>9+</sup>
134e41f4b71Sopenharmony_ci
135e41f4b71Sopenharmony_cigetPorts(): Array\<USBPort\>
136e41f4b71Sopenharmony_ci
137e41f4b71Sopenharmony_ci获取所有物理USB端口描述信息。
138e41f4b71Sopenharmony_ci
139e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
140e41f4b71Sopenharmony_ci
141e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
142e41f4b71Sopenharmony_ci
143e41f4b71Sopenharmony_ci**返回值:**
144e41f4b71Sopenharmony_ci
145e41f4b71Sopenharmony_ci| 类型                          | 说明                  |
146e41f4b71Sopenharmony_ci| ----------------------------- | --------------------- |
147e41f4b71Sopenharmony_ci| [Array\<USBPort\>](#usbport9) | USB端口描述信息列表。 |
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_ci**示例:**
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci```js
152e41f4b71Sopenharmony_cilet ret = usb.getPorts();
153e41f4b71Sopenharmony_ci```
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci## usb.getSupportedModes<sup>9+</sup>
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_cigetSupportedModes(portId: number): PortModeType
158e41f4b71Sopenharmony_ci
159e41f4b71Sopenharmony_ci获取指定的端口支持的模式列表的组合掩码。
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
162e41f4b71Sopenharmony_ci
163e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
164e41f4b71Sopenharmony_ci
165e41f4b71Sopenharmony_ci**参数:**
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明     |
168e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------- |
169e41f4b71Sopenharmony_ci| portId | number | 是   | 端口号。 |
170e41f4b71Sopenharmony_ci
171e41f4b71Sopenharmony_ci**返回值:**
172e41f4b71Sopenharmony_ci
173e41f4b71Sopenharmony_ci| 类型                           | 说明                       |
174e41f4b71Sopenharmony_ci| ------------------------------ | -------------------------- |
175e41f4b71Sopenharmony_ci| [PortModeType](#portmodetype9) | 支持的模式列表的组合掩码。 |
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ci**示例:**
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ci```js
180e41f4b71Sopenharmony_cilet ret = usb.getSupportedModes(0);
181e41f4b71Sopenharmony_ci```
182e41f4b71Sopenharmony_ci
183e41f4b71Sopenharmony_ci## usb.setPortRoles<sup>9+</sup>
184e41f4b71Sopenharmony_ci
185e41f4b71Sopenharmony_cisetPortRoles(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise\<boolean\>
186e41f4b71Sopenharmony_ci
187e41f4b71Sopenharmony_ci设置指定的端口支持的角色模式,包含充电角色、数据传输角色。
188e41f4b71Sopenharmony_ci
189e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
190e41f4b71Sopenharmony_ci
191e41f4b71Sopenharmony_ci**系统能力:**  SystemCapability.USB.USBManager
192e41f4b71Sopenharmony_ci
193e41f4b71Sopenharmony_ci**参数:**
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_ci| 参数名    | 类型                             | 必填 | 说明             |
196e41f4b71Sopenharmony_ci| --------- | -------------------------------- | ---- | ---------------- |
197e41f4b71Sopenharmony_ci| portId    | number                           | 是   | 端口号。         |
198e41f4b71Sopenharmony_ci| powerRole | [PowerRoleType](#powerroletype9) | 是   | 充电的角色。     |
199e41f4b71Sopenharmony_ci| dataRole  | [DataRoleType](#dataroletype9)   | 是   | 数据传输的角色。 |
200e41f4b71Sopenharmony_ci
201e41f4b71Sopenharmony_ci**返回值:**
202e41f4b71Sopenharmony_ci
203e41f4b71Sopenharmony_ci| 类型               | 说明                                                         |
204e41f4b71Sopenharmony_ci| ------------------ | ------------------------------------------------------------ |
205e41f4b71Sopenharmony_ci| Promise\<boolean\> | Promise对象,返回设置成功与否的结果。true表示设置成功,false表示设置失败。 |
206e41f4b71Sopenharmony_ci
207e41f4b71Sopenharmony_ci**示例:**
208e41f4b71Sopenharmony_ci
209e41f4b71Sopenharmony_ci```js
210e41f4b71Sopenharmony_cilet portId = 1;
211e41f4b71Sopenharmony_ciusb.setPortRoles(portId, usb.PowerRoleType.SOURCE, usb.DataRoleType.HOST).then(() => {
212e41f4b71Sopenharmony_ci    console.info('usb setPortRoles successfully.');
213e41f4b71Sopenharmony_ci}).catch((err : BusinessError) => {
214e41f4b71Sopenharmony_ci    console.error('usb setPortRoles failed: ' + err.code + ' message: ' + err.message);
215e41f4b71Sopenharmony_ci});
216e41f4b71Sopenharmony_ci```
217e41f4b71Sopenharmony_ci
218e41f4b71Sopenharmony_ci## USBPort<sup>9+</sup>
219e41f4b71Sopenharmony_ci
220e41f4b71Sopenharmony_ciUSB设备端口。
221e41f4b71Sopenharmony_ci
222e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
223e41f4b71Sopenharmony_ci
224e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.USB.USBManager
225e41f4b71Sopenharmony_ci
226e41f4b71Sopenharmony_ci| 名称           | 类型                         | 必填 |说明                                |
227e41f4b71Sopenharmony_ci| -------------- | -------------------------------- | -------------- |----------------------------------- |
228e41f4b71Sopenharmony_ci| id             | number                           | 是   |USB端口唯一标识。                   |
229e41f4b71Sopenharmony_ci| supportedModes | [PortModeType](#portmodetype9)   | 是   |USB端口所支持的模式的数字组合掩码。 |
230e41f4b71Sopenharmony_ci| status         | [USBPortStatus](#usbportstatus9) | 是   |USB端口角色。                       |
231e41f4b71Sopenharmony_ci
232e41f4b71Sopenharmony_ci## USBPortStatus<sup>9+</sup>
233e41f4b71Sopenharmony_ci
234e41f4b71Sopenharmony_ciUSB设备端口角色信息。
235e41f4b71Sopenharmony_ci
236e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
237e41f4b71Sopenharmony_ci
238e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.USB.USBManager
239e41f4b71Sopenharmony_ci
240e41f4b71Sopenharmony_ci| 名称             | 类型 | 必填 |说明                   |
241e41f4b71Sopenharmony_ci| ---------------- | -------- | ----------- |---------------------- |
242e41f4b71Sopenharmony_ci| currentMode      | number   | 是   |当前的USB模式。        |
243e41f4b71Sopenharmony_ci| currentPowerRole | number   | 是   |当前设备充电模式。     |
244e41f4b71Sopenharmony_ci| currentDataRole  | number   | 是   |当前设备数据传输模式。 |
245e41f4b71Sopenharmony_ci
246e41f4b71Sopenharmony_ci## FunctionType<sup>9+</sup>
247e41f4b71Sopenharmony_ci
248e41f4b71Sopenharmony_ciUSB设备侧功能。
249e41f4b71Sopenharmony_ci
250e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
251e41f4b71Sopenharmony_ci
252e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.USB.USBManager
253e41f4b71Sopenharmony_ci
254e41f4b71Sopenharmony_ci| 名称         | 值   | 说明       |
255e41f4b71Sopenharmony_ci| ------------ | ---- | ---------- |
256e41f4b71Sopenharmony_ci| NONE         | 0    | 没有功能。 |
257e41f4b71Sopenharmony_ci| ACM          | 1    | acm功能。  |
258e41f4b71Sopenharmony_ci| ECM          | 2    | ecm功能。  |
259e41f4b71Sopenharmony_ci| HDC          | 4    | hdc功能。  |
260e41f4b71Sopenharmony_ci| MTP          | 8    | 媒体传输。 |
261e41f4b71Sopenharmony_ci| PTP          | 16   | 图片传输。 |
262e41f4b71Sopenharmony_ci| RNDIS        | 32   | 网络共享。 |
263e41f4b71Sopenharmony_ci| MIDI         | 64   | midi功能。 |
264e41f4b71Sopenharmony_ci| AUDIO_SOURCE | 128  | 音频功能。 |
265e41f4b71Sopenharmony_ci| NCM          | 256  | ncm传输。  |
266e41f4b71Sopenharmony_ci
267e41f4b71Sopenharmony_ci## PortModeType<sup>9+</sup>
268e41f4b71Sopenharmony_ci
269e41f4b71Sopenharmony_ciUSB端口模式类型。
270e41f4b71Sopenharmony_ci
271e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
272e41f4b71Sopenharmony_ci
273e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.USB.USBManager
274e41f4b71Sopenharmony_ci
275e41f4b71Sopenharmony_ci| 名称      | 值   | 说明                                                 |
276e41f4b71Sopenharmony_ci| --------- | ---- | ---------------------------------------------------- |
277e41f4b71Sopenharmony_ci| NONE      | 0    | 无。                                                 |
278e41f4b71Sopenharmony_ci| UFP       | 1    | 数据上行,需要外部供电。                             |
279e41f4b71Sopenharmony_ci| DFP       | 2    | 数据下行,对外提供电源。                             |
280e41f4b71Sopenharmony_ci| DRP       | 3    | 既可以做DFP(Host),也可以做UFP(Device),当前不支持。 |
281e41f4b71Sopenharmony_ci| NUM_MODES | 4    | 当前不支持。                                         |
282e41f4b71Sopenharmony_ci
283e41f4b71Sopenharmony_ci## PowerRoleType<sup>9+</sup>
284e41f4b71Sopenharmony_ci
285e41f4b71Sopenharmony_ci电源角色类型。
286e41f4b71Sopenharmony_ci
287e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
288e41f4b71Sopenharmony_ci
289e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.USB.USBManager
290e41f4b71Sopenharmony_ci
291e41f4b71Sopenharmony_ci| 名称   | 值   | 说明       |
292e41f4b71Sopenharmony_ci| ------ | ---- | ---------- |
293e41f4b71Sopenharmony_ci| NONE   | 0    | 无。       |
294e41f4b71Sopenharmony_ci| SOURCE | 1    | 外部供电。 |
295e41f4b71Sopenharmony_ci| SINK   | 2    | 内部供电。 |
296e41f4b71Sopenharmony_ci
297e41f4b71Sopenharmony_ci## DataRoleType<sup>9+</sup>
298e41f4b71Sopenharmony_ci
299e41f4b71Sopenharmony_ci数据角色类型。
300e41f4b71Sopenharmony_ci
301e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
302e41f4b71Sopenharmony_ci
303e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.USB.USBManager
304e41f4b71Sopenharmony_ci
305e41f4b71Sopenharmony_ci| 名称   | 值   | 说明         |
306e41f4b71Sopenharmony_ci| ------ | ---- | ------------ |
307e41f4b71Sopenharmony_ci| NONE   | 0    | 无。         |
308e41f4b71Sopenharmony_ci| HOST   | 1    | 主设备角色。 |
309e41f4b71Sopenharmony_ci| DEVICE | 2    | 从设备角色。 |
310e41f4b71Sopenharmony_ci
311