• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&lt;Readonly&lt;DeviceInfo&gt;&gt;
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&lt;Readonly&lt;[DeviceInfo](#deviceinfo)&gt;&gt; | 扩展外设详细信息列表。 |
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&lt;Readonly&lt;DriverInfo&gt;&gt;
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&lt;Readonly&lt;[DriverInfo](#driverinfo)&gt;&gt; | 扩展外设驱动详细信息列表。 |
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&lt;Readonly&lt;[USBInterfaceDesc](#usbinterfacedesc)&gt;&gt; | 是   | 否   | 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&lt;number&gt; | 否   | 否   | 驱动支持的USB设备product ID列表。 |
198| vendorIdList  | Array&lt;number&gt; | 否   | 否   | 驱动支持的USB设备vendor ID列表。  |