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