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