openharmony 鸿蒙 js-apis-driver-deviceManager

2025-06-12 浏览 (1)

@ohos.driver.deviceManager (Peripheral Management)

The deviceManager module provides APIs for managing peripheral devices, including querying the peripheral device list and binding or unbinding a peripheral device.

NOTE

The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version.

Modules to Import

import { deviceManager } from '@kit.DriverDevelopmentKit';

deviceManager.queryDevices

queryDevices(busType?: number): Array<Readonly<Device>>

Queries the list of peripheral devices. If the device has no peripheral device connected, an empty list is returned.

Required permissions: ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER

System capability: SystemCapability.Driver.ExternalDevice

Parameters

NameTypeMandatoryDescription
busTypenumberNoBus type of the peripheral device to query. If this parameter is left blank, all types of peripheral devices are queried.

Return value

TypeDescription
Array<Readonly<Device>>List of peripheral devices obtained.

Error codes

IDError Message
201The permission check failed.
22900001ExternalDeviceManager service exception or busType parameter error.

Example

import { deviceManager } from '@kit.DriverDevelopmentKit';

try {
  let devices : Array<deviceManager.Device> = deviceManager.queryDevices(deviceManager.BusType.USB);
  for (let item of devices) {
    let device : deviceManager.USBDevice = item as deviceManager.USBDevice;
    console.info(`Device id is ${device.deviceId}`)
  }
} catch (error) {
  console.error(`Failed to query device. Code is ${error.code}, message is ${error.message}`);
}

deviceManager.bindDevice(deprecated)

bindDevice(deviceId: number, onDisconnect: AsyncCallback<number>, callback: AsyncCallback<{deviceId: number; remote: rpc.IRemoteObject;}>): void

Binds a peripheral device based on the device information returned by queryDevices(). This API uses an asynchronous callback to return the result.

You can use deviceManager.queryDevices to obtain the peripheral device information first.

NOTE This API is supported since API version 10 and deprecated since API version 18. You are advised to use deviceManager.bindDriverWithDeviceId instead.

Required permissions: ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER

System capability: SystemCapability.Driver.ExternalDevice

Parameters

NameTypeMandatoryDescription
deviceIdnumberYesID of the device to unbind. It can be obtained by queryDevices().
onDisconnectAsyncCallback<number>YesCallback to be invoked when the bound peripheral device is disconnected.
callbackAsyncCallback<{deviceId: number; remote: rpc.IRemoteObject;}>YesCallback invoked to return the communication object of the peripheral device bound.

Error codes

IDError Message
201The permission check failed.
401Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
22900001ExternalDeviceManager service exception.

Example

import { deviceManager } from '@kit.DriverDevelopmentKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { rpc } from '@kit.IPCKit';

interface DataType {
  deviceId : number;
  remote : rpc.IRemoteObject;
}

try {
  // For example, deviceId is 12345678. You can use queryDevices() to obtain the deviceId.
  deviceManager.bindDevice(12345678, (error : BusinessError, data : number) => {
    console.error(`Device is disconnected`);
  }, (error : BusinessError, data : DataType) => {
    if (error) {
      console.error(`bindDevice async fail. Code is ${error.code}, message is ${error.message}`);
      return;
    }
    console.info(`bindDevice success`);
  });
} catch (error) {
  console.error(`bindDevice fail. Code is ${error.code}, message is ${error.message}`);
}

deviceManager.bindDeviceDriver(deprecated)

bindDeviceDriver(deviceId: number, onDisconnect: AsyncCallback<number>, callback: AsyncCallback<RemoteDeviceDriver>): void

Binds a peripheral device based on the device information returned by queryDevices(). This API uses an asynchronous callback to return the result.

You can use deviceManager.queryDevices to obtain the peripheral device information first.

Description This API is supported since API version 11 and deprecated since API version 18. You are advised to use deviceManager.bindDriverWithDeviceId instead.

Required permissions: ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER

System capability: SystemCapability.Driver.ExternalDevice

Parameters

NameTypeMandatoryDescription
deviceIdnumberYesID of the device to unbind. It can be obtained by queryDevices().
onDisconnectAsyncCallback<number>YesCallback to be invoked when the bound peripheral device is disconnected.
callbackAsyncCallback<RemoteDeviceDriver>YesBinding result, including the device ID and remote object.

Error codes

IDError Message
201The permission check failed.
401Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
22900001ExternalDeviceManager service exception.

Example

import { deviceManager } from '@kit.DriverDevelopmentKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { rpc } from '@kit.IPCKit';

try {
  // For example, deviceId is 12345678. You can use queryDevices() to obtain the deviceId.
  deviceManager.bindDeviceDriver(12345678, (error : BusinessError, data : number) => {
    console.error(`Device is disconnected`);
  }, (error : BusinessError, data : deviceManager.RemoteDeviceDriver) => {
    if (error) {
      console.error(`bindDeviceDriver async fail. Code is ${error.code}, message is ${error.message}`);
      return;
    }
    console.info(`bindDeviceDriver success`);
  });
} catch (error) {
  console.error(`bindDeviceDriver fail. Code is ${error.code}, message is ${error.message}`);
}

deviceManager.bindDevice(deprecated)

bindDevice(deviceId: number, onDisconnect: AsyncCallback<number>): Promise<{deviceId: number; remote: rpc.IRemoteObject;}>;

Binds a peripheral device based on the device information returned by queryDevices(). This API uses an asynchronous callback to return the result.

You need to use deviceManager.queryDevices to obtain the peripheral device information first.

NOTE This API is supported since API version 10 and deprecated since API version 18. You are advised to use deviceManager.bindDriverWithDeviceId instead.

Required permissions: ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER

System capability: SystemCapability.Driver.ExternalDevice

Parameters

NameTypeMandatoryDescription
deviceIdnumberYesID of the device to unbind. It can be obtained by queryDevices().
onDisconnectAsyncCallback<number>YesCallback to be invoked when the bound peripheral device is disconnected.

Return value

TypeDescription
Promise<{deviceId: number; remote: rpc.IRemoteObject;}>Promise used to return the device ID and IRemoteObject object.

Error codes

IDError Message
201The permission check failed.
401Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
22900001ExternalDeviceManager service exception.

Example

import { deviceManager } from '@kit.DriverDevelopmentKit';
import { BusinessError } from '@kit.BasicServicesKit';

try {
  // For example, deviceId is 12345678. You can use queryDevices() to obtain the deviceId.
  deviceManager.bindDevice(12345678, (error : BusinessError, data : number) => {
    console.error(`Device is disconnected`);
  }).then(data => {
    console.info(`bindDevice success, Device_Id is ${data.deviceId}.
    remote is ${data.remote != null ? data.remote.getDescriptor() : "null"}`);
  }, (error: BusinessError) => {
    console.error(`bindDevice async fail. Code is ${error.code}, message is ${error.message}`);
  });
} catch (error) {
  console.error(`bindDevice fail. Code is ${error.code}, message is ${error.message}`);
}

deviceManager.bindDeviceDriver(deprecated)

bindDeviceDriver(deviceId: number, onDisconnect: AsyncCallback<number>): Promise<RemoteDeviceDriver>;

Binds a peripheral device based on the device information returned by queryDevices(). This API uses a promise to return the result.

You need to use deviceManager.queryDevices to obtain the peripheral device information first.

NOTE This API is supported since API version 11 and deprecated since API version 18. You are advised to use deviceManager.bindDriverWithDeviceId instead.

Required permissions: ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER

System capability: SystemCapability.Driver.ExternalDevice

Parameters

NameTypeMandatoryDescription
deviceIdnumberYesID of the device to unbind. It can be obtained by queryDevices().
onDisconnectAsyncCallback<number>YesCallback to be invoked when the bound peripheral device is disconnected.

Return value

TypeDescription
Promise<RemoteDeviceDriver>Promise used to return a RemoteDeviceDriver object.

Error codes

IDError Message
201The permission check failed.
401Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
22900001ExternalDeviceManager service exception.

Example

import { deviceManager } from '@kit.DriverDevelopmentKit';
import { BusinessError } from '@kit.BasicServicesKit';

try {
  // For example, deviceId is 12345678. You can use queryDevices() to obtain the deviceId.
  deviceManager.bindDeviceDriver(12345678, (error : BusinessError, data : number) => {
    console.error(`Device is disconnected`);
  }).then((data: deviceManager.RemoteDeviceDriver) => {
    console.info(`bindDeviceDriver success, Device_Id is ${data.deviceId}.
    remote is ${data.remote != null ? data.remote.getDescriptor() : "null"}`);
  }, (error: BusinessError) => {
    console.error(`bindDeviceDriver async fail. Code is ${error.code}, message is ${error.message}`);
  });
} catch (error) {
  console.error(`bindDeviceDriver fail. Code is ${error.code}, message is ${error.message}`);
}

deviceManager.unbindDevice(deprecated)

unbindDevice(deviceId: number, callback: AsyncCallback<number>): void

Unbinds a peripheral device. This API uses an asynchronous callback to return the result.

NOTE This API is supported since API version 10 and deprecated since API version 18. You are advised to use deviceManager.unbindDriverWithDeviceId instead.

Required permissions: ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER

System capability: SystemCapability.Driver.ExternalDevice

Parameters

NameTypeMandatoryDescription
deviceIdnumberYesID of the device to unbind. It can be obtained by queryDevices().
callbackAsyncCallback<number>YesCallback invoked to return the result.

Error codes

IDError Message
201The permission check failed.
401Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
22900001ExternalDeviceManager service exception.

Example

import { deviceManager } from '@kit.DriverDevelopmentKit';
import { BusinessError } from '@kit.BasicServicesKit';

try {
  // For example, deviceId is 12345678. You can use queryDevices() to obtain the deviceId.
  deviceManager.unbindDevice(12345678, (error : BusinessError, data : number) => {
    if (error) {
      console.error(`unbindDevice async fail. Code is ${error.code}, message is ${error.message}`);
      return;
    }
    console.info(`unbindDevice success`);
  });
} catch (error) {
  console.error(`unbindDevice fail. Code is ${error.code}, message is ${error.message}`);
}

deviceManager.unbindDevice(deprecated)

unbindDevice(deviceId: number): Promise<number>

Unbinds a peripheral device. This API uses an asynchronous callback to return the result.

NOTE This API is supported since API version 10 and deprecated since API version 18. You are advised to use deviceManager.unbindDriverWithDeviceId instead.

Required permissions: ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER

System capability: SystemCapability.Driver.ExternalDevice

Parameters

NameTypeMandatoryDescription
deviceIdnumberYesID of the device to unbind. It can be obtained by queryDevices().

Error codes

IDError Message
201The permission check failed.
401Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
22900001ExternalDeviceManager service exception.

Return value

TypeDescription
Promise<number>Promise used to return the device ID.

Example

import { deviceManager } from '@kit.DriverDevelopmentKit';
import { BusinessError } from '@kit.BasicServicesKit';

try {
  // For example, deviceId is 12345678. You can use queryDevices() to obtain the deviceId.
  deviceManager.unbindDevice(12345678).then((data : number) => {
    console.info(`unbindDevice success, Device_Id is ${data}.`);
  }, (error : BusinessError) => {
    console.error(`unbindDevice async fail. Code is ${error.code}, message is ${error.message}`);
  });
} catch (error) {
  console.error(`unbindDevice fail. Code is ${error.code}, message is ${error.message}`);
}

deviceManager.bindDriverWithDeviceId18+

bindDriverWithDeviceId(deviceId: number, onDisconnect: AsyncCallback<number>): Promise<RemoteDeviceDriver>;

Binds a peripheral device based on the device information returned by queryDevices(). This API uses an asynchronous callback to return the result.

You need to call deviceManager.queryDevices to obtain the device list.

Required permissions: ohos.permission.ACCESS_DDK_DRIVERS

System capability: SystemCapability.Driver.ExternalDevice

Parameters

NameTypeMandatoryDescription
deviceIdnumberYesID of the device to unbind. It can be obtained by queryDevices().
onDisconnectAsyncCallback<number>YesCallback to be invoked when the bound peripheral device is disconnected.

Return value

TypeDescription
Promise<RemoteDeviceDriver>Promise used to return the RemoteDeviceDriver object.

Error codes

IDError Message
201The permission check failed.
401Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
26300001ExternalDeviceManager service exception.
26300002Service not allowed.

Example

import { deviceManager } from '@kit.DriverDevelopmentKit';
import { BusinessError } from '@kit.BasicServicesKit';

try {
  // For example, deviceId is 12345678. You can use queryDevices() to obtain the deviceId.
  deviceManager.bindDriverWithDeviceId(12345678, (error : BusinessError, data : number) => {
    console.error(`Device is disconnected`);
  }).then((data: deviceManager.RemoteDeviceDriver) => {
    console.info(`bindDriverWithDeviceId success, Device_Id is ${data.deviceId}.
    remote is ${data.remote != null ? data.remote.getDescriptor() : "null"}`);
  }, (error: BusinessError) => {
    console.error(`bindDriverWithDeviceId async fail. Code is ${error.code}, message is ${error.message}`);
  });
} catch (error) {
  console.error(`bindDriverWithDeviceId fail. Code is ${error.code}, message is ${error.message}`);
}

deviceManager.unbindDriverWithDeviceId18+

unbindDriverWithDeviceId(deviceId: number): Promise<number>

Unbinds a peripheral device. This API uses an asynchronous callback to return the result.

Required permissions: ohos.permission.ACCESS_DDK_DRIVERS

System capability: SystemCapability.Driver.ExternalDevice

Parameters

NameTypeMandatoryDescription
deviceIdnumberYesID of the device to unbind. It can be obtained by queryDevices().

Return value

TypeDescription
Promise<number>Promise used to return the device ID.

Error codes

IDError Message
201The permission check failed.
401Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
26300001ExternalDeviceManager service exception.
26300003There is no binding relationship.

Example

import { deviceManager } from '@kit.DriverDevelopmentKit';
import { BusinessError } from '@kit.BasicServicesKit';

try {
  // For example, deviceId is 12345678. You can use queryDevices() to obtain the deviceId.
  deviceManager.unbindDriverWithDeviceId(12345678).then((data : number) => {
    console.info(`unbindDriverWithDeviceId success, Device_Id is ${data}.`);
  }, (error : BusinessError) => {
    console.error(`unbindDriverWithDeviceId async fail. Code is ${error.code}, message is ${error.message}`);
  });
} catch (error) {
  console.error(`unbindDriverWithDeviceId fail. Code is ${error.code}, message is ${error.message}`);
}

Device

Represents the peripheral device information.

System capability: SystemCapability.Driver.ExternalDevice

NameTypeMandatoryDescription
busTypeBusTypeYesBus type.
deviceIdnumberYesID of the peripheral device.
descriptionstringYesDescription of the peripheral device.

USBDevice

USB device information, which is inherited from Device.

System capability: SystemCapability.Driver.ExternalDevice

NameTypeMandatoryDescription
vendorIdnumberYesVendor ID of the USB device.
productIdnumberYesProduct ID of the USB device.

BusType

Enumerates the device bus types.

System capability: SystemCapability.Driver.ExternalDevice

NameValueDescription
USB1USB bus.

RemoteDeviceDriver11+

Represents information about a remote device driver.

System capability: SystemCapability.Driver.ExternalDevice

NameTypeMandatoryDescription
deviceId11+numberYesID of the peripheral device.
remote11+rpc.IRemoteObjectYesRemote driver object.

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Driver Development Kit

harmony 鸿蒙Base DDK

harmony 鸿蒙DDK_Ashmem

harmony 鸿蒙Hid_AbsAxesArray

harmony 鸿蒙Hid_Device

harmony 鸿蒙Hid_EmitItem

harmony 鸿蒙Hid_EventProperties

harmony 鸿蒙Hid_EventTypeArray

harmony 鸿蒙Hid_KeyCodeArray

harmony 鸿蒙Hid_MscEventArray

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