openharmony 鸿蒙 js-apis-usbManager-sys

2025-06-12 浏览 (1)

@ohos.usbManager (USB Manager) (System API)

The usbManager module provides USB device management functions, including USB device list query, bulk data transfer, control transfer, and permission control on the host side as well as port management, and function switch and query on the device side.

NOTE

The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. This topic describes only the system APIs provided by the module. For details about its public APIs, see @ohos.usbManager (USB Manager).

Modules to Import

import { usbManager } from '@kit.BasicServicesKit';

addRight (deprecated)

addRight(bundleName: string, deviceName: string): boolean

Adds the device access permission for the application. System applications are granted the device access permission by default, and calling this API will not revoke the permission.

usbManager.requestRight triggers a dialog box to request for user authorization, whereas addRight adds the access permission directly without displaying a dialog box.

NOTE

This API is supported since API version 9 and deprecated since API version 12. You are advised to use addDeviceAccessRight.

System API: This is a system API.

System capability: SystemCapability.USB.USBManager

Parameters

NameTypeMandatoryDescription
deviceNamestringYesDevice name.
bundleNamestringYesBundle name of the application.

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
202Permission denied. Normal application do not have permission to use system api.

Return value

TypeDescription
booleanPermission addition result. The value true indicates that the access permission is added successfully; and the value false indicates the opposite.

Example

let devicesName: string = "1-1";
let bundleName: string = "com.example.hello";
if (usbManager.addRight(bundleName, devicesName)) {
  console.log(`Succeed in adding right`);
}

usbFunctionsFromString(deprecated)

usbFunctionsFromString(funcs: string): number

Converts the USB function list in the string format to a numeric mask in Device mode.

NOTE

This API is supported since API version 9 and deprecated since API version 12. You are advised to use getFunctionsFromString.

System API: This is a system API.

System capability: SystemCapability.USB.USBManager

Parameters

NameTypeMandatoryDescription
funcsstringYesFunction list in string format.

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
202Permission denied. Normal application do not have permission to use system api.

Return value

TypeDescription
numberFunction list in numeric mask format.

Example

let funcs: string = "acm";
let ret: number = usbManager.usbFunctionsFromString(funcs);

usbFunctionsToString(deprecated)

usbFunctionsToString(funcs: FunctionType): string

Converts the USB function list in the numeric mask format to a string in Device mode.

NOTE

This API is supported since API version 9 and deprecated since API version 12. You are advised to use getStringFromFunctions.

System API: This is a system API.

System capability: SystemCapability.USB.USBManager

Parameters

NameTypeMandatoryDescription
funcsFunctionTypeYesUSB function list in numeric mask format.

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
202Permission denied. Normal application do not have permission to use system api.

Return value

TypeDescription
stringFunction list in string format.

Example

let funcs: number = usbManager.FunctionType.ACM|usb.FunctionType.ECM;
let ret: string = usbManager.usbFunctionsToString(funcs);

setCurrentFunctions(deprecated)

setCurrentFunctions(funcs: FunctionType): Promise<void>

Sets the current USB function list in Device mode.

NOTE

This API is supported since API version 9 and deprecated since API version 12. You are advised to use setDeviceFunctions.

System API: This is a system API.

System capability: SystemCapability.USB.USBManager

Parameters

NameTypeMandatoryDescription
funcsFunctionTypeYesUSB function list in numeric mask format.

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
14400002Permission denied. The HDC is disabled by the system.

Return value

TypeDescription
Promise<void>Promise used to return the result.

Example

import {BusinessError} from '@kit.BasicServicesKit';
let funcs: number = usbManager.FunctionType.HDC;
usbManager.setCurrentFunctions(funcs).then(() => {
    console.info('usb setCurrentFunctions successfully.');
}).catch((err: BusinessError) => {
    console.error('usb setCurrentFunctions failed: ' + err.code + ' message: ' + err.message);
});

getCurrentFunctions(deprecated)

getCurrentFunctions(): FunctionType

Obtains the numeric mask combination for the USB function list in Device mode. When the developer mode is disabled, undefined may be returned if no device is connected. Check whether the return value of the API is empty.

NOTE

This API is supported since API version 9 and deprecated since API version 12. You are advised to use getDeviceFunctions.

System API: This is a system API.

System capability: SystemCapability.USB.USBManager

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. No parameters are required.
202Permission denied. Normal application do not have permission to use system api.

Return value

TypeDescription
FunctionTypeNumeric mask combination for the USB function list.

Example

let ret: number = usbManager.getCurrentFunctions();

getPorts(deprecated)

getPorts(): Array<USBPort>

Obtains the list of all physical USB ports. When the developer mode is disabled, undefined may be returned if no device is connected. Check whether the return value of the API is empty.

NOTE

This API is supported since API version 9 and deprecated since API version 12. You are advised to use getPortList.

System API: This is a system API.

System capability: SystemCapability.USB.USBManager

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. No parameters are required.
202Permission denied. Normal application do not have permission to use system api.

Return value

TypeDescription
Array<USBPort>List of physical USB ports.

Example

let ret: Array<usbManager.USBPort> = usbManager.getPorts();

getSupportedModes(deprecated)

getSupportedModes(portId: number): PortModeType

Obtains the mask combination for the supported mode list of a given USB port.

NOTE

This API is supported since API version 9 and deprecated since API version 12. You are advised to use getPortSupportModes instead.

System API: This is a system API.

System capability: SystemCapability.USB.USBManager

Parameters

NameTypeMandatoryDescription
portIdnumberYesPort number.

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
202Permission denied. Normal application do not have permission to use system api.

Return value

TypeDescription
PortModeTypeMask combination for the supported mode list.

Example

let ret: number = usbManager.getSupportedModes(0);

setPortRoles(deprecated)

setPortRoles(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise<void>

Sets the role types supported by a specified port, which can be powerRole (for charging) and dataRole (for data transfer).

NOTE

This API is supported since API version 9 and deprecated since API version 12. You are advised to use setPortRoleTypes.

System API: This is a system API.

System capability: SystemCapability.USB.USBManager

Parameters

NameTypeMandatoryDescription
portIdnumberYesPort number.
powerRolePowerRoleTypeYesRole for charging.
dataRoleDataRoleTypeYesRole for data transfer.

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.

Return value

TypeDescription
Promise<void>Promise used to return the result.

Example

import {BusinessError} from '@kit.BasicServicesKit';
let portId: number = 1;
usbManager.setPortRoles(portId, usbManager.PowerRoleType.SOURCE, ususbManagerb.DataRoleType.HOST).then(() => {
    console.info('usb setPortRoles successfully.');
}).catch((err: BusinessError) => {
    console.error('usb setPortRoles failed: ' + err.code + ' message: ' + err.message);
});

addDeviceAccessRight12+

addDeviceAccessRight(tokenId: string, deviceName: string): boolean

Adds the device access permission for the application. System applications are granted the device access permission by default, and calling this API will not revoke the permission.

usbManager.requestRight triggers a dialog box to request for user authorization, whereas addDeviceAccessRight adds the access permission directly without displaying a dialog box.

NOTE

This API is supported since API version 12.

System API: This is a system API.

Required permissions: ohos.permission.MANAGE_USB_CONFIG

System capability: SystemCapability.USB.USBManager

Parameters

NameTypeMandatoryDescription
deviceNamestringYesDevice name.
tokenIdstringYesToken ID of the software package.

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
201Permission verification failed. The application does not have the permission required to call the API.
202Permission denied. Normal application do not have permission to use system api.
801Capability not supported.

Return value

TypeDescription
booleanPermission addition result. The value true indicates that the access permission is added successfully; and the value false indicates the opposite.

Example

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
let devicesName: string = "1-1";
let tokenId: string = "";

  try {
    let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;
    bundleManager.getBundleInfoForSelf(bundleFlags).then((bundleInfo) => {
      console.info('testTag', 'getBundleInfoForSelf successfully. Data: %{public}s', JSON.stringify(bundleInfo));
      let token = bundleInfo.appInfo.accessTokenId;
      tokenId = token.toString();
      if (usbManager.addDeviceAccessRight(tokenId, devicesName)) {
        console.log(`Succeed in adding right`);
      }
    }).catch((err : BusinessError) => {
      console.error('testTag getBundleInfoForSelf failed' );
    });
  } catch (err) {
    console.error('testTag failed');
  }

getFunctionsFromString12+

getFunctionsFromString(funcs: string): number

Converts the USB function list in the string format to a numeric mask in Device mode.

NOTE

This API is supported since API version 12.

System API: This is a system API.

Required permissions: ohos.permission.MANAGE_USB_CONFIG

System capability: SystemCapability.USB.USBManager

Parameters

NameTypeMandatoryDescription
funcsstringYesFunction list in string format.

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
201Permission verification failed. The application does not have the permission required to call the API.
202Permission denied. Normal application do not have permission to use system api.
801Capability not supported.

Return value

TypeDescription
numberFunction list in numeric mask format.

Example

let funcs: string = "acm";
let ret: number = usbManager.getFunctionsFromString(funcs);

getStringFromFunctions12+

getStringFromFunctions(funcs: FunctionType): string

Converts the USB function list in the numeric mask format to a string in Device mode.

NOTE

This API is supported since API version 12.

System API: This is a system API.

Required permissions: ohos.permission.MANAGE_USB_CONFIG

System capability: SystemCapability.USB.USBManager

Parameters

NameTypeMandatoryDescription
funcsFunctionTypeYesUSB function list in numeric mask format.

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
201Permission verification failed. The application does not have the permission required to call the API.
202Permission denied. Normal application do not have permission to use system api.
801Capability not supported.

Return value

TypeDescription
stringFunction list in string format.

Example

let funcs: number = usbManager.FunctionType.ACM|usbManager.FunctionType.ECM;
let ret: string = usbManager.getStringFromFunctions(funcs);

setDeviceFunctions12+

setDeviceFunctions(funcs: FunctionType): Promise<void>

Sets the current USB function list in Device mode.

NOTE

This API is supported since API version 12.

System API: This is a system API.

Required permissions: ohos.permission.MANAGE_USB_CONFIG

System capability: SystemCapability.USB.USBManager

Parameters

NameTypeMandatoryDescription
funcsFunctionTypeYesUSB function list in numeric mask format.

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
201Permission verification failed. The application does not have the permission required to call the API.
202Permission denied. Normal application do not have permission to use system api.
801Capability not supported.
14400002Permission denied. The HDC is disabled by the system.
14400006Unsupported operation. The function is not supported.

Return value

TypeDescription
Promise<void>Promise used to return the result.

Example

import { BusinessError } from '@kit.BasicServicesKit';
let funcs: number = usbManager.FunctionType.HDC;
usbManager.setDeviceFunctions(funcs).then(() => {
    console.info('usb setDeviceFunctions successfully.');
}).catch((err : BusinessError) => {
    console.error('usb setDeviceFunctions failed: ' + err.code + ' message: ' + err.message);
});

getDeviceFunctions12+

getDeviceFunctions(): FunctionType

Obtains the numeric mask combination for the USB function list in Device mode. When the developer mode is disabled, undefined may be returned if no device is connected. Check whether the return value of the API is empty.

NOTE

This API is supported since API version 12.

System API: This is a system API.

Required permissions: ohos.permission.MANAGE_USB_CONFIG

System capability: SystemCapability.USB.USBManager

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. No parameters are required.
201Permission verification failed. The application does not have the permission required to call the API.
202Permission denied. Normal application do not have permission to use system api.
801Capability not supported.

Return value

TypeDescription
FunctionTypeNumeric mask combination for the USB function list.

Example

let ret: number = usbManager.getDeviceFunctions();

getPortList12+

getPortList(): Array<USBPort>

Obtains the list of all physical USB ports. When the developer mode is disabled, undefined may be returned if no device is connected. Check whether the return value of the API is empty.

NOTE

This API is supported since API version 12.

System API: This is a system API.

Required permissions: ohos.permission.MANAGE_USB_CONFIG

System capability: SystemCapability.USB.USBManager

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
201Permission verification failed. The application does not have the permission required to call the API.
202Permission denied. Normal application do not have permission to use system api.
801Capability not supported.

Return value

TypeDescription
Array<USBPort>List of physical USB ports.

Example

let ret: Array<usbManager.USBPort> = usbManager.getPortList();

getPortSupportModes12+

getPortSupportModes(portId: number): PortModeType

Obtains the mask combination for the supported mode list of a given USB port.

System API: This is a system API.

Required permissions: ohos.permission.MANAGE_USB_CONFIG

System capability: SystemCapability.USB.USBManager

Parameters

NameTypeMandatoryDescription
portIdnumberYesPort number.

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
201Permission verification failed. The application does not have the permission required to call the API.
202Permission denied. Normal application do not have permission to use system api.
801Capability not supported.

Return value

TypeDescription
PortModeTypeMask combination for the supported mode list.

Example

let ret: number = usbManager.getPortSupportModes(0);

setPortRoleTypes12+

setPortRoleTypes(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise<void>

Sets the role types supported by a specified port, which can be powerRole (for charging) and dataRole (for data transfer).

NOTE

This API is supported since API version 12.

System API: This is a system API.

Required permissions: ohos.permission.MANAGE_USB_CONFIG

System capability: SystemCapability.USB.USBManager

Parameters

NameTypeMandatoryDescription
portIdnumberYesPort number.
powerRolePowerRoleTypeYesRole for charging.
dataRoleDataRoleTypeYesRole for data transfer.

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
201Permission verification failed. The application does not have the permission required to call the API.
202Permission denied. Normal application do not have permission to use system api.
801Capability not supported.
14400003Unsupported operation. The current device does not support port role switching.

Return value

TypeDescription
Promise<void>Promise used to return the result.

Example

import { BusinessError } from '@kit.BasicServicesKit';
let portId: number = 1;
usbManager.setPortRoleTypes(portId, usbManager.PowerRoleType.SOURCE, usbManager.DataRoleType.HOST).then(() => {
  console.info('usb setPortRoleTypes successfully.');
}).catch((err : BusinessError) => {
  console.error('usb setPortRoleTypes failed: ' + err.code + ' message: ' + err.message);
});

addAccessoryRight14+

addAccessoryRight(tokenId: number, accessory: USBAccessory): void

Adds the permission to applications for accessing USB accessories.

usbManager.requestAccessoryRight triggers a dialog box to request user authorization. addAccessoryRight does not trigger a dialog box but directly adds the device access permission for the application.

System API: This is a system API.

Required permissions: ohos.permission.MANAGE_USB_CONFIG

System capability: SystemCapability.USB.USBManager

Parameters

NameTypeMandatoryDescription
tokenIdnumberYesToken ID of the application.
accessoryUSBAccessoryYesUSB accessory.

Error codes

For details about the error codes, see USB Service Error Codes.

IDError Message
201The permission check failed.
202Permission denied. Normal application do not have permission to use system api.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801Capability not supported.
14400004Service exception. Possible causes: 1. No accessory is plugged in.
14400005Database operation exception.

Example

import { hilog } from '@kit.PerformanceAnalysisKit';
import { bundleManager } from '@kit.AbilityKit';
try {
  let accList: usbManager.USBAccessory[] = usbManager.getAccessoryList()
  let flags = bundleManager.BundleFlah.GET_BUNDLE_INFO_WITH_APPLICATION|bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY
  let bundleInfo = await bundleManager.getBundleInfoForSelf(flags)
  let tokenId: number = bundleInfo.appInfo.accessTokenId
  usbManager.addAccessoryRight(tokenId, accList[0])
  hilog.info(0, 'testTag ui', `addAccessoryRight success`)
} catch (error) {
  hilog.info(0, 'testTag ui', `addAccessoryRight error ${error.code}, message is ${error.message}`)
}

USBPort

Represents a USB port.

System API: This is a system API.

System capability: SystemCapability.USB.USBManager

NameTypeMandatoryDescription
idnumberYesUnique identifier of a USB port.
supportedModesPortModeTypeYesNumeric mask combination for the supported mode list.
statusUSBPortStatusYesUSB port role.

USBPortStatus

Enumerates USB port roles.

System API: This is a system API.

System capability: SystemCapability.USB.USBManager

NameTypeMandatoryDescription
currentModenumberYesCurrent USB mode.
currentPowerRolenumberYesCurrent power role.
currentDataRolenumberYesCurrent data role.

FunctionType

Enumerates USB device function types.

System API: This is a system API.

System capability: SystemCapability.USB.USBManager

NameValueDescription
NONE0No function.
ACM1ACM function.
ECM2ECM function.
HDC4HDC function.
MTP8Media transmission.
PTP16Image transmission.
RNDIS32Network sharing (not supported).
MIDI64MIDI function (not supported).
AUDIO_SOURCE128Audio function (not supported).
NCM256NCM transmission (not supported).

PortModeType

Enumerates USB port mode types.

System API: This is a system API.

System capability: SystemCapability.USB.USBManager

NameValueDescription
NONE0None
UFP1Upstream facing port, which functions as the sink of power supply.
DFP2Downstream facing port, which functions as the source of power supply.
DRP3Dynamic reconfiguration port (DRP), which can function as the DFP (host) or UFP (device). It is not supported currently.
NUM_MODES4Not supported currently.

PowerRoleType

Enumerates power role types.

System API: This is a system API.

System capability: SystemCapability.USB.USBManager

NameValueDescription
NONE0None
SOURCE1Power supply for external devices.
SINK2External power supply.

DataRoleType

Enumerates data role types.

System API: This is a system API.

System capability: SystemCapability.USB.USBManager

NameValueDescription
NONE0None
HOST1USB host.
DEVICE2USB device.

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Basic Services Kit

harmony 鸿蒙DeviceInfo

harmony 鸿蒙InitSync

harmony 鸿蒙OH_Print

harmony 鸿蒙OsAccount

harmony 鸿蒙Pasteboard

harmony 鸿蒙Print_Margin

harmony 鸿蒙Print_PageSize

harmony 鸿蒙Print_PrintAttributes

harmony 鸿蒙Print_PrintDocCallback

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/60wC6i