1.2K Star 6.3K Fork 5.3K

OpenHarmony / docs

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
js-apis-driver-deviceManager.md 10.61 KB
一键复制 编辑 原始数据 按行查看 历史
z30053694 提交于 2023-10-13 19:36 . use complete name of "Device"

@ohos.driver.deviceManager (外设管理)

本模块主要提供管理外部设备的相关功能,包括查询设备列表、绑定设备和解除绑定设备。

说明:

本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import deviceManager from "@ohos.driver.deviceManager";

deviceManager.queryDevices

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

获取接入主设备的外部设备列表。如果没有设备接入,那么将会返回一个空的列表。

需要权限:ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER

系统能力: SystemCapability.Driver.ExternalDevice

参数:

参数名 类型 必填 说明
busType number 设备总线类型,不填则查找所有类型设备

返回值:

类型 说明
Array<Readonly<deviceManager.Device>> 设备信息列表。

错误码:

错误码ID 错误信息
401 The parameter check failed.
22900001 ExternalDeviceManager service exception.

示例:

import deviceManager from "@ohos.driver.deviceManager";


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

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

根据queryDevices()返回的设备信息绑定设备。

需要调用deviceManager.queryDevices获取设备信息以及device。

需要权限:ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER

系统能力: SystemCapability.Driver.ExternalDevice

参数:

参数名 类型 必填 说明
deviceId number 设备ID,通过queryDevices获得
onDisconnect AsyncCallback<number> 绑定设备断开的回调
callback AsyncCallback<{deviceId: number, remote: rpc.IRemoteObject}> 绑定设备的回调,返回绑定设备的通信对象

错误码:

错误码ID 错误信息
401 The parameter check failed.
22900001 ExternalDeviceManager service exception.

示例:

import deviceManager from "@ohos.driver.deviceManager";
import { BusinessError } from '@ohos.base';

try {
  // 12345678为示例deviceId,应用开发时可通过queryDevices查询到相应设备的deviceId作为入参
  deviceManager.bindDevice(12345678, (error : BusinessError, data : number) => {
    console.error(`Device is disconnected`);
  }, (error : BusinessError, data: {
      deviceId : number;
      remote : rpc.IRemoteObject;
  }) => {
    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.bindDevice

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

根据queryDevices()返回的设备信息绑定设备。

需要调用deviceManager.queryDevices获取设备信息以及device。

需要权限:ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER

系统能力: SystemCapability.Driver.ExternalDevice

参数:

参数名 类型 必填 说明
deviceId number 设备ID,通过queryDevices获得
onDisconnect AsyncCallback<number> 绑定设备断开的回调

返回值:

类型 说明
Promise<{deviceId: number, remote: rpc.IRemoteObject}> Promise对象,返回设备ID和IRemoteObject对象。

错误码:

错误码ID 错误信息
401 The parameter check failed.
22900001 ExternalDeviceManager service exception.

示例:

import deviceManager from "@ohos.driver.deviceManager";
import { BusinessError } from '@ohos.base';

try {
  // 12345678为示例deviceId,应用开发时可通过queryDevices查询到相应设备的deviceId作为入参
  deviceManager.bindDevice(12345678, (error : BusinessError, data : number) => {
    console.error(`Device is disconnected`);
  }).then((data : {
      deviceId : number;
      remote : rpc.IRemoteObject;
  }) => {
    console.info(`bindDevice success`);
  }, (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.unbindDevice

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

解除设备绑定。

需要权限:ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER

系统能力: SystemCapability.Driver.ExternalDevice

参数:

参数名 类型 必填 说明
deviceId number 设备ID,通过queryDevices获得。
callback AsyncCallback<number> 解绑完成的回调。

错误码:

错误码ID 错误信息
401 The parameter check failed.
22900001 ExternalDeviceManager service exception.

示例:

import deviceManager from "@ohos.driver.deviceManager";

try {
  // 12345678为示例deviceId,应用开发时可通过queryDevices查询到相应设备的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

unbindDevice(deviceId: number): Promise<number>

解除设备绑定。

需要权限:ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER

系统能力: SystemCapability.Driver.ExternalDevice

参数:

参数名 类型 必填 说明
deviceId number 设备ID,通过queryDevices获得。

错误码:

错误码ID 错误信息
401 The parameter check failed.
22900001 ExternalDeviceManager service exception.

返回值:

类型 说明
Promise<number> Promise对象,返回设备ID。

示例:

import deviceManager from "@ohos.driver.deviceManager";
import { BusinessError } from '@ohos.base';

try {
  // 12345678为示例deviceId,应用开发时可通过queryDevices查询到相应设备的deviceId作为入参
  deviceManager.unbindDevice(12345678).then((data : number) => {
    console.info(`unbindDevice success`);
  }, (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}`);
}

Device

外设信息。

系统能力: SystemCapability.Driver.ExternalDevice

名称 类型 必填 说明
busType BusType 总线类型。
deviceId number 设备ID。
description string 设备描述。

USBDevice

USB设备信息。

系统能力: SystemCapability.Driver.ExternalDevice

名称 类型 必填 说明
vendorId number USB设备Vendor ID。
productId number USB设备Product ID。

BusType

设备总线类型。

系统能力: SystemCapability.Driver.ExternalDevice

名称 说明
USB 1 USB总线类型。
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
其他
1
https://gitee.com/openharmony/docs.git
git@gitee.com:openharmony/docs.git
openharmony
docs
docs
OpenHarmony-4.0-Beta2

搜索帮助

344bd9b3 5694891 D2dac590 5694891