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