1# @ohos.driver.deviceManager (外设管理)(系统接口) 2<!--Kit: Driver Development Kit--> 3<!--Subsystem: Driver--> 4<!--Owner: @lixinsheng2--> 5<!--Designer: @w00373942--> 6<!--Tester: @dong-dongzhen--> 7<!--Adviser: @w_Machine_cc--> 8 9本模块主要提供管理外部设备的相关功能,包括查询扩展外设详细信息和查询扩展外设驱动详细信息。 10 11> **说明:** 12> 13> * 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 14> * 当前页面仅包含本模块的系统接口,其他公开接口请参见[@ohos.driver.deviceManager (外设管理)](js-apis-driver-deviceManager.md)。 15 16## 导入模块 17 18```ts 19import { deviceManager } from '@kit.DriverDevelopmentKit'; 20``` 21 22## deviceManager.queryDeviceInfo 23 24queryDeviceInfo(deviceId?: number): Array<Readonly<DeviceInfo>> 25 26查询扩展外设详细信息列表。如果没有设备接入,那么将会返回一个空的列表。 27 28**系统接口**:此接口为系统接口。 29 30**需要权限**:ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER 31 32**系统能力:** SystemCapability.Driver.ExternalDevice 33 34**参数:** 35 36| 参数名 | 类型 | 必填 | 说明 | 37|----------|--------|-----|------------------------| 38| deviceId | number | 否 | 设备ID,通过[queryDevices](js-apis-driver-deviceManager.md#devicemanagerquerydevices)获得。如果不传入设备ID,则默认获取所有的设备信息;如果没有外接设备,且没有传入设备ID则会返回空数组。 | 39 40**返回值:** 41 42| 类型 | 说明 | 43|--------------------------------------------------------|-------------| 44| Array<Readonly<[DeviceInfo](#deviceinfo)>> | 扩展外设详细信息列表。 | 45 46**错误码:** 47 48以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[驱动错误码](errorcode-deviceManager.md)。 49 50| 错误码ID | 错误信息 | 51|----------|-----------------------------------------------------------------------| 52| 201 | The permission check failed. | 53| 202 | Permission denied. A non-system application cannot call a system API. | 54| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. | 55| 26300001 | ExternalDeviceManager service exception. | 56 57**示例:** 58 59```ts 60import { deviceManager } from '@kit.DriverDevelopmentKit'; 61import { BusinessError } from '@kit.BasicServicesKit'; 62 63try { 64 // 12345678为示例deviceId,应用开发时可通过queryDevices查询到相应设备的deviceId作为入参 65 let deviceInfos : Array<deviceManager.DeviceInfo> = deviceManager.queryDeviceInfo(12345678); 66 for (let item of deviceInfos) { 67 console.info(`Device id is ${item.deviceId}`) 68 } 69} catch (error) { 70 let err: BusinessError = error as BusinessError; 71 console.error(`Failed to query device info. Code is ${err.code}, message is ${err.message}`); 72} 73``` 74## deviceManager.queryDriverInfo 75 76queryDriverInfo(driverUid?: string): Array<Readonly<DriverInfo>> 77 78查询扩展外设驱动详细信息列表。如果没有设备接入,那么将会返回一个空的列表。 79 80**系统接口**:此接口为系统接口。 81 82**需要权限**:ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER 83 84**系统能力:** SystemCapability.Driver.ExternalDevice 85 86**参数:** 87 88| 参数名 | 类型 | 必填 | 说明 | 89|-----------|--------|-----|----------------------------| 90| driverUid | string | 否 | 驱动UID,通过queryDeviceInfo获得。 | 91 92**返回值:** 93 94| 类型 | 说明 | 95|--------------------------------------------------------|---------------| 96| Array<Readonly<[DriverInfo](#driverinfo)>> | 扩展外设驱动详细信息列表。 | 97 98**错误码:** 99 100以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[驱动错误码](errorcode-deviceManager.md)。 101 102| 错误码ID | 错误信息 | 103|----------|-----------------------------------------------------------------------| 104| 201 | The permission check failed. | 105| 202 | Permission denied. A non-system application cannot call a system API. | 106| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. | 107| 26300001 | ExternalDeviceManager service exception. | 108 109**示例:** 110 111```ts 112import { deviceManager } from '@kit.DriverDevelopmentKit'; 113import { BusinessError } from '@kit.BasicServicesKit'; 114 115try { 116 // driver-12345为示例driverUid,应用开发时可通过queryDeviceInfo查询到相应设备匹配到的驱动的driverUid作为入参 117 let driverInfos : Array<deviceManager.DriverInfo> = deviceManager.queryDriverInfo("driver-12345"); 118 for (let item of driverInfos) { 119 console.info(`driver name is ${item.driverName}`) 120 } 121} catch (error) { 122 let err: BusinessError = error as BusinessError; 123 console.error(`Failed to query driver info. Code is ${err.code}, message is ${err.message}`); 124} 125``` 126 127## DeviceInfo 128 129设备详细信息。 130 131**系统接口:** 此接口为系统接口。 132 133**系统能力:** SystemCapability.Driver.ExternalDevice 134 135| 名称 | 类型 | 只读 | 可选 | 说明 | 136|-----------------|---------|-----|-----|-------------| 137| deviceId | number | 否 | 否 | 设备ID。 | 138| isDriverMatched | boolean | 否 | 否 | 设备是否匹配到驱动。`true`:匹配到驱动;`false`:未匹配到驱动。 | 139| driverUid | string | 否 | 是 | 设备匹配的驱动UID。 | 140 141## USBDeviceInfo 142 143USB设备详细信息,继承自[DeviceInfo](#deviceinfo)。 144 145**系统接口:** 此接口为系统接口。 146 147**系统能力:** SystemCapability.Driver.ExternalDevice 148 149| 名称 | 类型 | 只读 | 可选 | 说明 | 150|-------------------|--------------------------------------------------------------------|-----|-----|------------------| 151| vendorId | number | 否 | 否 | USB设备Vendor ID。 | 152| productId | number | 否 | 否 | USB设备Product ID。 | 153| interfaceDescList | Array<Readonly<[USBInterfaceDesc](#usbinterfacedesc)>> | 是 | 否 | USB设备接口描述符列表。 | 154 155## USBInterfaceDesc 156 157USB设备接口描述符。 158 159**系统接口:** 此接口为系统接口。 160 161**系统能力:** SystemCapability.Driver.ExternalDevice 162 163| 名称 | 类型 | 只读 | 可选 | 说明 | 164|------------------|--------|-----|-----|--------| 165| bInterfaceNumber | number | 否 | 否 | 接口编号。 | 166| bClass | number | 否 | 否 | 类型代码。 | 167| bSubClass | number | 否 | 否 | 子类型代码。 | 168| bProtocol | number | 否 | 否 | 协议代码。 | 169 170## DriverInfo 171 172驱动详细信息。 173 174**系统接口:** 此接口为系统接口。 175 176**系统能力:** SystemCapability.Driver.ExternalDevice 177 178| 名称 | 类型 | 只读 | 可选 | 说明 | 179|---------------|----------------------------------------------------|-----|-----|----------------| 180| busType | [BusType](js-apis-driver-deviceManager.md#bustype) | 否 | 否 | 总线类型。 | 181| driverUid | string | 否 | 否 | 驱动Uid。 | 182| driverName | string | 否 | 否 | 驱动名称。 | 183| driverVersion | string | 否 | 否 | 驱动版本。 | 184| driverSize | string | 否 | 否 | 驱动大小(单位为Byte)。 | 185| description | string | 否 | 否 | 驱动描述。 | 186 187## USBDriverInfo 188 189USB设备驱动详细信息,继承自[DriverInfo](#driverinfo)。 190 191**系统接口:** 此接口为系统接口。 192 193**系统能力:** SystemCapability.Driver.ExternalDevice 194 195| 名称 | 类型 | 只读 | 可选 | 说明 | 196|---------------|---------------------|-----|-----|-------------------------| 197| productIdList | Array<number> | 否 | 否 | 驱动支持的USB设备product ID列表。 | 198| vendorIdList | Array<number> | 否 | 否 | 驱动支持的USB设备vendor ID列表。 |