• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.distributedHardware.deviceManager (设备管理)
2
3本模块提供分布式设备管理能力。
4
5系统应用可调用接口实现如下功能:
6
7- 注册和解除注册设备上下线变化监听
8- 发现周边不可信设备
9- 认证和取消认证设备
10- 查询可信设备列表
11- 查询本地设备信息,包括设备名称,设备类型和设备标识
12- 发布设备发现
13
14> **说明:**
15>
16> - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
17>
18> - 本模块接口为系统接口,三方应用不支持调用。
19
20
21## 导入模块
22
23```js
24import deviceManager from '@ohos.distributedHardware.deviceManager';
25```
26
27
28## deviceManager.createDeviceManager
29
30createDeviceManager(bundleName: string, callback: AsyncCallback<DeviceManager>): void
31
32创建一个设备管理器实例。
33
34**系统能力**:SystemCapability.DistributedHardware.DeviceManager
35
36**参数:**
37
38  | 参数名        | 类型                                       | 必填   | 说明                                   |
39  | ---------- | ---------------------------------------- | ---- | ------------------------------------ |
40  | bundleName | string                                   | 是    | 指示应用程序的包名。                           |
41  | callback   | AsyncCallback<[DeviceManager](#devicemanager)> | 是    | DeviceManager实例创建时调用的回调,返回设备管理器对象实例。 |
42
43**错误码:**
44
45以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
46
47| 错误码ID | 错误信息                                                        |
48| -------- | --------------------------------------------------------------- |
49| 11600101 | Failed to execute the function.                                 |
50| 11600102 | Failed to obtain the service.                                   |
51
52**示例:**
53
54  ```js
55  try {
56    deviceManager.createDeviceManager("ohos.samples.jshelloworld", (err, data) => {
57      if (err) {
58        console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
59        return;
60      }
61      console.info("createDeviceManager success");
62      let dmInstance = data;
63    });
64  } catch(err) {
65    console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
66  }
67  ```
68
69## DeviceInfo
70
71设备信息。
72
73**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
74
75| 名称                     | 类型                        | 必填   | 说明       |
76| ---------------------- | ------------------------- | ---- | -------- |
77| deviceId               | string                    | 是    | 设备的唯一标识。 |
78| deviceName             | string                    | 是    | 设备名称。    |
79| deviceType             | [DeviceType](#devicetype) | 是    | 设备类型。    |
80| networkId<sup>8+</sup> | string                    | 是    | 设备网络标识。  |
81| range<sup>9+</sup>     | number                    | 是    | 发现设备的距离。  |
82
83## DeviceType
84
85表示设备类型的枚举类。
86
87**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
88
89| 名称           | 值  | 说明   |
90| ------------ | ---- | ---- |
91| SPEAKER      | 0x0A | 智能音箱 |
92| PHONE        | 0x0E | 手机   |
93| TABLET       | 0x11 | 平板   |
94| WEARABLE     | 0x6D | 智能穿戴 |
95| TV           | 0x9C | 智慧屏  |
96| CAR          | 0x83 | 车    |
97| UNKNOWN_TYPE | 0    | 未知设备 |
98
99
100## DeviceStateChangeAction
101
102表示设备状态变化的枚举。
103
104**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
105
106| 名称      | 值  | 说明              |
107| ------- | ---- | --------------- |
108| ONLINE  | 0    | 设备物理上线状态。           |
109| READY   | 1    | 设备可用状态,表示设备间信息已在分布式数据中同步完成, 可以运行分布式业务。 |
110| OFFLINE | 2    | 设备物理下线状态。           |
111| CHANGE  | 3    | 设备信息更改。         |
112
113## SubscribeInfo
114
115发现信息。
116
117**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
118
119| 名称            | 类型                                | 必填   | 说明                |
120| ------------- | --------------------------------- | ---- | ----------------- |
121| subscribeId   | number                            | 是    | 发现标识,用于标识不同的发现周期。 |
122| mode          | [DiscoverMode ](#discovermode)    | 否    | 发现模式。             |
123| medium        | [ExchangeMedium](#exchangemedium) | 否    | 发现类型。             |
124| freq          | [ExchangeFreq](#exchangefreq)     | 否    | 发现频率。             |
125| isSameAccount | boolean                           | 否    | 是否同帐号。            |
126| isWakeRemote  | boolean                           | 否    | 是否唤醒设备。           |
127| capability    | [SubscribeCap](#subscribecap)     | 否    | 发现能力。             |
128
129
130## DiscoverMode
131
132表示发现模式的枚举。
133
134**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
135
136| 名称                    | 值  | 说明    |
137| --------------------- | ---- | ----- |
138| DISCOVER_MODE_PASSIVE | 0x55 | 被动模式。 |
139| DISCOVER_MODE_ACTIVE  | 0xAA | 主动模式。 |
140
141
142## ExchangeMedium
143
144表示发现类型的枚举。
145
146**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
147
148| 名称   | 值  | 说明        |
149| ---- | ---- | --------- |
150| AUTO | 0    | 自动发现类型。   |
151| BLE  | 1    | 蓝牙发现类型。   |
152| COAP | 2    | WiFi发现类型。 |
153| USB  | 3    | USB发现类型。  |
154
155## ExchangeFreq
156
157表示发现频率的枚举。
158
159**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
160
161| 名称         | 值  | 说明    |
162| ---------- | ---- | ----- |
163| LOW        | 0    | 低频率。  |
164| MID        | 1    | 中频率。  |
165| HIGH       | 2    | 高频率。  |
166| SUPER_HIGH | 3    | 超高频率。 |
167
168
169## SubscribeCap
170
171表示发现能力的枚举。
172
173**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
174
175| 名称                        | 值  | 说明             |
176| ------------------------- | ---- | -------------- |
177| SUBSCRIBE_CAPABILITY_DDMP | 0    | DDMP能力,后续会被废弃。 |
178| SUBSCRIBE_CAPABILITY_OSD  | 1    | OSD能力。         |
179
180
181## AuthParam
182
183认证参数。
184
185**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
186
187| 名称        | 类型                   | 必填   | 说明         |
188| --------- | -------------------- | ---- | ---------- |
189| authType  | number               | 是    | 认证类型。      |
190| extraInfo | {[key:string]&nbsp;:&nbsp;any} | 否    | 认证参数可扩展字段。 |
191
192## AuthInfo
193
194认证信息。
195
196**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
197
198| 名称        | 类型                   | 必填   | 说明         |
199| --------- | -------------------- | ---- | ---------- |
200| authType  | number               | 是    | 认证类型。      |
201| token     | number               | 是    | 认证Token。   |
202| extraInfo | {[key:string]&nbsp;:&nbsp;any} | 否    | 认证信息可扩展字段。 |
203
204## PublishInfo<sup>9+</sup>
205
206发布设备参数
207
208**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager
209
210| 名称          | 类型                              | 必填   | 说明                |
211| ------------- | --------------------------------- | ---- | ----------------- |
212| publishId     | number                            | 是    | 发布设备标识,用于标识不同的发布周期。 |
213| mode          | [DiscoverMode ](#discovermode)    | 是    | 发现模式。             |
214| freq          | [ExchangeFreq](#exchangefreq)     | 是    | 发现频率。             |
215| ranging       | boolean                           | 是    | 发布的设备是否支持测距能力。             |
216
217## DeviceManager
218
219设备管理实例,用于获取可信设备和本地设备的相关信息。在调用DeviceManager的方法前,需要先通过createDeviceManager构建一个DeviceManager实例dmInstance。
220
221### release
222
223release(): void
224
225设备管理实例不再使用后,通过该方法释放DeviceManager实例。
226
227**系统能力**:SystemCapability.DistributedHardware.DeviceManager
228
229**错误码:**
230
231以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
232
233| 错误码ID | 错误信息                                                        |
234| -------- | --------------------------------------------------------------- |
235| 11600101 | Failed to execute the function.                                 |
236
237**示例:**
238
239  ```js
240  try {
241    dmInstance.release();
242  } catch (err) {
243    console.error("release errCode:" + err.code + ",errMessage:" + err.message);
244  }
245  ```
246
247### getTrustedDeviceListSync
248
249getTrustedDeviceListSync(): Array&lt;DeviceInfo&gt;
250
251同步获取所有可信设备列表。
252
253**系统能力**:SystemCapability.DistributedHardware.DeviceManager
254
255**返回值:**
256
257  | 名称                                     | 说明        |
258  | -------------------------------------- | --------- |
259  | Array&lt;[DeviceInfo](#deviceinfo)&gt; | 返回可信设备列表。 |
260
261**错误码:**
262
263以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
264
265| 错误码ID | 错误信息                                                        |
266| -------- | --------------------------------------------------------------- |
267| 11600101 | Failed to execute the function.                                 |
268
269**示例:**
270
271  ```js
272  try {
273    var deviceInfoList = dmInstance.getTrustedDeviceListSync();
274  } catch (err) {
275    console.error("getTrustedDeviceListSync errCode:" + err.code + ",errMessage:" + err.message);
276  }
277  ```
278
279### getTrustedDeviceList<sup>8+</sup>
280
281getTrustedDeviceList(callback:AsyncCallback&lt;Array&lt;DeviceInfo&gt;&gt;): void
282
283获取所有可信设备列表。使用callback异步回调。
284
285**系统能力**:SystemCapability.DistributedHardware.DeviceManager
286
287**参数:**
288
289  | 参数名       | 类型                                     | 必填   | 说明                    |
290  | -------- | ---------------------------------------- | ---- | --------------------- |
291  | callback | AsyncCallback&lt;Array&lt;[DeviceInfo](#deviceinfo)&gt;&gt; | 是    | 获取所有可信设备列表的回调,返回设备信息。 |
292
293**错误码:**
294
295以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
296
297| 错误码ID | 错误信息                                                        |
298| -------- | --------------------------------------------------------------- |
299| 11600101 | Failed to execute the function.                                 |
300
301**示例:**
302
303  ```js
304  try {
305    dmInstance.getTrustedDeviceList((err, data) => {
306      if (err) {
307        console.error("getTrustedDeviceList errCode:" + err.code + ",errMessage:" + err.message);
308        return;
309      }
310      console.log('get trusted device info: ' + JSON.stringify(data));
311    });
312  } catch (err) {
313    console.error("getTrustedDeviceList errCode:" + err.code + ",errMessage:" + err.message);
314  }
315  ```
316
317### getTrustedDeviceList<sup>8+</sup>
318
319getTrustedDeviceList(): Promise&lt;Array&lt;DeviceInfo&gt;&gt;
320
321获取所有可信设备列表。使用Promise异步回调。
322
323**系统能力**:SystemCapability.DistributedHardware.DeviceManager
324
325**返回值:**
326
327  | 类型                                       | 说明                    |
328  | ---------------------------------------- | --------------------- |
329  | Promise&lt;Array&lt;[DeviceInfo](#deviceinfo)&gt;&gt; | Promise实例,用于获取异步返回结果。 |
330
331**错误码:**
332
333以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
334
335| 错误码ID | 错误信息                                                        |
336| -------- | --------------------------------------------------------------- |
337| 11600101 | Failed to execute the function.                                 |
338
339**示例:**
340
341  ```js
342  dmInstance.getTrustedDeviceList().then((data) => {
343    console.log('get trusted device info: ' + JSON.stringify(data));
344    }).catch((err) => {
345      console.error("getTrustedDeviceList errCode:" + err.code + ",errMessage:" + err.message);
346  });
347  ```
348
349### getLocalDeviceInfoSync<sup>8+</sup>
350
351getLocalDeviceInfoSync(): [DeviceInfo](#deviceinfo)
352
353同步获取本地设备信息。
354
355**系统能力**:SystemCapability.DistributedHardware.DeviceManager
356
357**返回值:**
358
359  | 名称                      | 说明              |
360  | ------------------------- | ---------------- |
361  | [DeviceInfo](#deviceinfo) | 返回本地设备列表。 |
362
363**错误码:**
364
365以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
366
367| 错误码ID | 错误信息                                                        |
368| -------- | --------------------------------------------------------------- |
369| 11600101 | Failed to execute the function.                                 |
370
371**示例:**
372
373  ```js
374  try {
375    var deviceInfo = dmInstance.getLocalDeviceInfoSync();
376  } catch (err) {
377    console.error("getLocalDeviceInfoSync errCode:" + err.code + ",errMessage:" + err.message);
378  }
379  ```
380
381### getLocalDeviceInfo<sup>8+</sup>
382
383getLocalDeviceInfo(callback:AsyncCallback&lt;DeviceInfo&gt;): void
384
385获取本地设备信息。使用callback异步回调。
386
387**系统能力**:SystemCapability.DistributedHardware.DeviceManager
388
389**参数:**
390
391  | 参数名       | 类型                                     | 必填   | 说明        |
392  | -------- | ---------------------------------------- | ---- | --------- |
393  | callback | AsyncCallback&lt;[DeviceInfo](#deviceinfo)&gt; | 是    | 获取本地设备信息。 |
394
395**错误码:**
396
397以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
398
399| 错误码ID | 错误信息                                                        |
400| -------- | --------------------------------------------------------------- |
401| 11600101 | Failed to execute the function.                                 |
402
403**示例:**
404
405  ```js
406  try {
407    dmInstance.getLocalDeviceInfo((err, data) => {
408    if (err) {
409      console.error("getLocalDeviceInfo errCode:" + err.code + ",errMessage:" + err.message);
410      return;
411    }
412      console.log('get local device info: ' + JSON.stringify(data));
413    });
414  } catch (err) {
415    console.error("getLocalDeviceInfo errCode:" + err.code + ",errMessage:" + err.message);
416  }
417  ```
418
419### getLocalDeviceInfo<sup>8+</sup>
420
421getLocalDeviceInfo(): Promise&lt;DeviceInfo&gt;
422
423获取本地设备信息。使用Promise异步回调。
424
425**系统能力**:SystemCapability.DistributedHardware.DeviceManager
426
427**返回值:**
428
429  | 类型                                       | 说明                    |
430  | ---------------------------------------- | --------------------- |
431  | Promise&lt;[DeviceInfo](#deviceinfo)&gt; | Promise实例,用于获取异步返回结果。 |
432
433**错误码:**
434
435以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
436
437| 错误码ID | 错误信息                                                        |
438| ------- | --------------------------------------------------------------- |
439| 11600101| Failed to execute the function.                                 |
440
441**示例:**
442
443  ```js
444  dmInstance.getLocalDeviceInfo().then((data) => {
445    console.log('get local device info: ' + JSON.stringify(data));
446  }).catch((err) => {
447    console.error("getLocalDeviceInfo errCode:" + err.code + ",errMessage:" + err.message);
448  });
449  ```
450
451### startDeviceDiscovery<sup>8+</sup>
452
453startDeviceDiscovery(subscribeInfo: SubscribeInfo): void
454
455发现周边设备。
456
457**系统能力**:SystemCapability.DistributedHardware.DeviceManager
458
459**参数:**
460
461  | 参数名            | 类型                       | 必填 | 说明    |
462  | ------------- | ------------------------------- | ---- | ----- |
463  | subscribeInfo | [SubscribeInfo](#subscribeinfo) | 是   | 发现信息。|
464
465**错误码:**
466
467以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
468
469| 错误码ID | 错误信息                                                        |
470| -------- | --------------------------------------------------------------- |
471| 11600101 | Failed to execute the function.                                 |
472| 11600104 | Discovery invalid.                                              |
473
474**示例:**
475
476  ```js
477  // 生成发现标识,随机数确保每次调用发现接口的标识不一致
478  var subscribeId = Math.floor(Math.random() * 10000 + 1000);
479  var subscribeInfo = {
480      "subscribeId": subscribeId,
481      "mode": 0xAA, // 主动模式
482      "medium": 0,  // 自动发现类型,同时支持多种发现类型
483      "freq": 2,    // 高频率
484      "isSameAccount": false,
485      "isWakeRemote": false,
486      "capability": 1
487  };
488  try {
489    dmInstance.startDeviceDiscovery(subscribeInfo); // 当有设备发现时,通过deviceFound回调通知给应用程序
490  } catch (err) {
491    console.error("startDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
492  }
493  ```
494
495### startDeviceDiscovery<sup>9+</sup>
496
497startDeviceDiscovery(subscribeInfo: SubscribeInfo, filterOptions?: string): void
498
499发现周边设备。
500
501**系统能力**:SystemCapability.DistributedHardware.DeviceManager
502
503**参数:**
504
505  | 参数名            | 类型                       | 必填   | 说明    |
506  | ------------- | ------------------------------- | ---- | -----  |
507  | subscribeInfo | [SubscribeInfo](#subscribeinfo) | 是   | 发现信息。 |
508  | filterOptions | string                          | 否   | 发现设备过滤信息。|
509
510**错误码:**
511
512以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
513
514| 错误码ID | 错误信息                                                        |
515| -------- | --------------------------------------------------------------- |
516| 11600101 | Failed to execute the function.                                 |
517| 11600104 | Discovery invalid.                                              |
518
519**示例:**
520
521  ```js
522  // 生成发现标识,随机数确保每次调用发现接口的标识不一致
523  var subscribeId = Math.floor(Math.random() * 10000 + 1000);
524  var subscribeInfo = {
525      "subscribeId": subscribeId,
526      "mode": 0xAA, // 主动模式
527      "medium": 0,  // 自动发现类型,同时支持多种发现类型
528      "freq": 2,    // 高频率
529      "isSameAccount": false,
530      "isWakeRemote": false,
531      "capability": 1
532  };
533  var filterOptions = {
534    "filter_op": "OR", // 可选, 默认"OR"
535    "filters": [
536        {
537            "type": "range",
538            "value": 50 // 需过滤发现设备的距离,单位(cm)
539        }
540    ]
541  };
542  try {
543    dmInstance.startDeviceDiscovery(subscribeInfo, JSON.stringify(filterOptions)); // 当有设备发现时,通过deviceFound回调通知给应用程序
544  } catch (err) {
545    console.error("startDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
546  }
547  ```
548
549### stopDeviceDiscovery
550
551stopDeviceDiscovery(subscribeId: number): void
552
553停止发现周边设备。
554
555**系统能力**:SystemCapability.DistributedHardware.DeviceManager
556
557**参数:**
558
559  | 参数名          | 类型   | 必填   | 说明    |
560  | ----------- | ------ | ---- | ----- |
561  | subscribeId | number | 是    | 发现标识。 |
562
563**错误码:**
564
565以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
566
567| 错误码ID | 错误信息                                                        |
568| -------- | --------------------------------------------------------------- |
569| 11600101 | Failed to execute the function.                                 |
570
571**示例:**
572
573  ```js
574  try {
575    // stopDeviceDiscovery和startDeviceDiscovery需配对使用,入参需要和startDeviceDiscovery接口传入的subscribeId值相等
576    var subscribeId = 12345;
577    dmInstance.stopDeviceDiscovery(subscribeId);
578  } catch (err) {
579    console.error("stopDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
580  }
581  ```
582
583### publishDeviceDiscovery<sup>9+</sup>
584
585publishDeviceDiscovery(publishInfo: PublishInfo): void
586
587发布设备发现。
588
589**系统能力**:SystemCapability.DistributedHardware.DeviceManager
590
591**参数:**
592
593  | 参数名          | 类型                        | 必填 | 说明    |
594  | ------------- | ------------------------------- | ---- | ----- |
595  | publishInfo   | [PublishInfo](#publishinfo)     | 是   | 发布设备发现信息。 |
596
597**错误码:**
598
599以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
600
601| 错误码ID | 错误信息                                                        |
602| -------- | --------------------------------------------------------------- |
603| 11600101 | Failed to execute the function.                                 |
604| 11600105 | Publish invalid.                                                |
605
606**示例:**
607
608  ```js
609  // 生成发布标识,随机数确保每次调用发布接口的标识不一致
610  var publishId = Math.floor(Math.random() * 10000 + 1000);
611  var publishInfo = {
612      "publishId": publishId,
613      "mode": 0xAA, // 主动模式
614      "freq": 2,    // 高频率
615      "ranging": true  // 支持发现时测距
616  };
617  try {
618    dmInstance.publishDeviceDiscovery(publishInfo); // 当有发布结果时,通过回调通知给应用程序
619  } catch (err) {
620    console.error("publishDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
621  }
622  ```
623
624### unPublishDeviceDiscovery<sup>9+</sup>
625
626unPublishDeviceDiscovery(publishId: number): void
627
628停止发布设备发现。
629
630**系统能力**:SystemCapability.DistributedHardware.DeviceManager
631
632**参数:**
633
634  | 参数名        | 类型 | 必填 | 说明  |
635  | ----------- | -------- | ---- | ----- |
636  | publishId   | number   | 是   | 发布标识。 |
637
638**错误码:**
639
640以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
641
642| 错误码ID | 错误信息                                                        |
643| -------- | --------------------------------------------------------------- |
644| 11600101 | Failed to execute the function.                                 |
645
646**示例:**
647
648  ```js
649  try {
650    // unPublishDeviceDiscovery和publishDeviceDiscovery配对使用,入参需要和publishDeviceDiscovery接口传入的publishId值相等
651    var publishId = 12345;
652    dmInstance.unPublishDeviceDiscovery(publishId);
653  } catch (err) {
654    console.error("unPublishDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
655  }
656  ```
657
658### authenticateDevice
659
660authenticateDevice(deviceInfo: DeviceInfo, authParam: AuthParam, callback: AsyncCallback&lt;{deviceId: string, pinToken ?: number}&gt;): void
661
662认证设备。
663
664**系统能力**:SystemCapability.DistributedHardware.DeviceManager
665
666**参数:**
667
668  | 参数名         | 类型                                     | 必填   | 说明      |
669  | ---------- | ---------------------------------------- | ---- | ------- |
670  | deviceInfo | [DeviceInfo](#deviceinfo)                | 是    | 设备信息。   |
671  | authParam  | [AuthParam](#authparam)                  | 是    | 认证参数。   |
672  | callback   | AsyncCallback&lt;{deviceId:&nbsp;string,&nbsp;pinToken&nbsp;?:&nbsp;number}&gt; | 是    | 认证结果回调。 |
673
674**错误码:**
675
676以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
677
678| 错误码ID | 错误信息                                                        |
679| -------- | --------------------------------------------------------------- |
680| 11600101 | Failed to execute the function.                                 |
681| 11600103 | Authentication invalid.                                         |
682
683**示例:**
684
685  ```js
686  // 认证的设备信息,可以从发现的结果中获取
687  var deviceInfo ={
688      "deviceId": "XXXXXXXX",
689      "deviceName": "",
690      "deviceType": 0x0E,
691      "networkId" : "xxxxxxx",
692      "range" : 0
693  };
694  let extraInfo = {
695          'targetPkgName': 'ohos.samples.xxx',
696          'appName': 'xxx',
697          'appDescription': 'xxx',
698          'business': '0'
699  }
700  let authParam = {
701      'authType': 1,// 认证类型: 1 - 无帐号PIN码认证
702      'extraInfo': extraInfo
703  }
704  try {
705    dmInstance.authenticateDevice(deviceInfo, authParam, (err, data) => {
706      if (err) {
707          console.error("authenticateDevice errCode:" + err.code + ",errMessage:" + err.message);
708          return;
709      }
710      console.info("authenticateDevice result:" + JSON.stringify(data));
711      let token = data.pinToken;
712    });
713  } catch (err) {
714    console.error("authenticateDevice errCode:" + err.code + ",errMessage:" + err.message);
715  }
716  ```
717
718### unAuthenticateDevice<sup>8+</sup>
719
720unAuthenticateDevice(deviceInfo: DeviceInfo): void
721
722解除认证设备。
723
724**系统能力**:SystemCapability.DistributedHardware.DeviceManager
725
726**参数:**
727
728  | 参数名         | 类型                      | 必填   | 说明    |
729  | ---------- | ------------------------- | ---- | ----- |
730  | deviceInfo | [DeviceInfo](#deviceinfo) | 是    | 设备信息。 |
731
732**错误码:**
733
734以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
735
736| 错误码ID | 错误信息                                                        |
737| -------- | --------------------------------------------------------------- |
738| 11600101 | Failed to execute the function.                                 |
739
740**示例:**
741
742  ```js
743  try {
744    var deviceInfo ={
745      "deviceId": "XXXXXXXX",
746      "deviceName": "",
747      "deviceType": 0x0E,
748      "networkId" : "xxxxxxx",
749      "range" : 0
750    };
751    dmInstance.unAuthenticateDevice(deviceInfo);
752  } catch (err) {
753    console.error("unAuthenticateDevice errCode:" + err.code + ",errMessage:" + err.message);
754  }
755  ```
756
757### verifyAuthInfo
758
759verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback&lt;{deviceId: string, level: number}&gt;): void
760
761验证认证信息。
762
763**系统能力**:SystemCapability.DistributedHardware.DeviceManager
764
765**参数:**
766
767  | 参数名       | 类型                                     | 必填   | 说明      |
768  | -------- | ---------------------------------------- | ---- | ------- |
769  | authInfo | [AuthInfo](#authinfo)                    | 是    | 认证信息。   |
770  | callback | AsyncCallback&lt;{deviceId:&nbsp;string,&nbsp;level:&nbsp;number}&gt; | 是    | 验证结果回调。 |
771
772**错误码:**
773
774以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
775
776| 错误码ID | 错误信息                                                        |
777| -------- | --------------------------------------------------------------- |
778| 11600101 | Failed to execute the function.                                 |
779
780**示例:**
781
782  ```js
783  let authInfo = {
784    "authType": 1,
785    "token": 123456,
786    "extraInfo": {}
787  }
788  try {
789    dmInstance.verifyAuthInfo(authInfo, (err, data) => {
790    if (err) {
791        console.error("verifyAuthInfo errCode:" + err.code + ",errMessage:" + err.message);
792        return;
793    }
794    console.info("verifyAuthInfo result:" + JSON.stringify(data));
795    });
796  } catch (err) {
797    console.error("verifyAuthInfo errCode:" + err.code + ",errMessage:" + err.message);
798  }
799  ```
800
801### setUserOperation<sup>9+</sup>
802
803setUserOperation(operateAction: number, params: string): void;
804
805设置用户ui操作行为。
806
807**系统能力**:SystemCapability.DistributedHardware.DeviceManager
808
809**参数:**
810
811  | 参数名       | 类型            | 必填  | 说明                |
812  | ------------- | --------------- | ---- | ------------------- |
813  | operateAction | number          | 是    | 用户操作动作。       |
814  | params        | string          | 是    | 表示用户的输入参数。 |
815
816**示例:**
817
818  ```js
819 try {
820    /*
821      operateAction = 0 - 允许授权
822      operateAction = 1 - 取消授权
823      operateAction = 2 - 授权框用户操作超时
824      operateAction = 3 - 取消pin码框展示
825      operateAction = 4 - 取消pin码输入框展示
826      operateAction = 5 - pin码输入框确定操作
827    */
828    let operation = 0;
829    dmInstance.setUserOperation(operation, "extra")
830    } catch (err) {
831      console.error("setUserOperation errCode:" + err.code + ",errMessage:" + err.message);
832  }
833  ```
834
835### on('uiStateChange')<sup>9+</sup>
836
837on(type: 'uiStateChange', callback: Callback&lt;{ param: string}&gt;): void;
838
839ui状态变更回调。
840
841**系统能力**:SystemCapability.DistributedHardware.DeviceManager
842
843**参数:**
844
845  | 参数名      | 类型                             | 必填 | 说明                            |
846  | -------- | ------------------------------------ | ---- | ------------------------------ |
847  | type     | string                                | 是  | 注册的设备管理器 ui 状态回调,以便在状态改变时通知应用。 |
848  | callback | Callback&lt;{&nbsp;param:&nbsp;string}&gt; | 是  | 指示要注册的设备管理器 ui 状态回调,返回ui状态。        |
849
850**示例:**
851
852  ```js
853  try {
854    dmInstance.on('uiStateChange', (data) => {
855    console.log("uiStateChange executed, dialog closed" + JSON.stringify(data))
856    var tmpStr = JSON.parse(data.param)
857    var isShow = tmpStr.verifyFailed
858    console.log("uiStateChange executed, dialog closed" + isShow)
859  });
860  } catch (err) {
861    console.error("uiStateChange errCode:" + err.code + ",errMessage:" + err.message);
862  }
863  ```
864
865### off('uiStateChange')<sup>9+</sup>
866
867off(type: 'uiStateChange', callback?: Callback&lt;{ param: string}&gt;): void;
868
869取消ui状态变更回调
870
871**系统能力**:SystemCapability.DistributedHardware.DeviceManager
872
873**参数:**
874
875  | 参数名      | 类型                              | 必填 | 说明                            |
876  | -------- | ------------------------------------- | ---- | ------------------------------ |
877  | type     | string                                | 是   | 取消注册的设备管理器 ui 状态回调。 |
878  | callback | Callback&lt;{&nbsp;param:&nbsp;string}&gt; | 否   | 指示要取消注册的设备管理器 ui 状态,返回UI状态。 |
879
880**示例:**
881
882  ```js
883  try {
884    dmInstance.off('uiStateChange');
885  } catch (err) {
886    console.error("uiStateChange errCode:" + err.code + ",errMessage:" + err.message);
887  }
888  ```
889
890### on('deviceStateChange')
891
892on(type: 'deviceStateChange',  callback: Callback&lt;{ action: DeviceStateChangeAction, device: DeviceInfo }&gt;): void
893
894注册设备状态回调。
895
896**系统能力**:SystemCapability.DistributedHardware.DeviceManager
897
898**参数:**
899
900  | 参数名       | 类型                                     | 必填   | 说明                             |
901  | -------- | ---------------------------------------- | ---- | ------------------------------ |
902  | type     | string                                   | 是    | 注册设备状态回调,固定为deviceStateChange。 |
903  | callback | Callback&lt;{&nbsp;action:&nbsp;[DeviceStateChangeAction](#devicestatechangeaction),&nbsp;device:&nbsp;[DeviceInfo](#deviceinfo)&nbsp;}&gt; | 是    | 指示要注册的设备状态回调,返回设备状态和设备信息。      |
904
905**示例:**
906
907  ```js
908  try {
909    dmInstance.on('deviceStateChange', (data) => {
910      console.info("deviceStateChange on:" + JSON.stringify(data));
911    });
912  } catch (err) {
913    console.error("deviceStateChange errCode:" + err.code + ",errMessage:" + err.message);
914  }
915  ```
916
917### off('deviceStateChange')
918
919off(type: 'deviceStateChange', callback?: Callback&lt;{ action: DeviceStateChangeAction, device: DeviceInfo }&gt;): void
920
921取消注册设备状态回调。
922
923**系统能力**:SystemCapability.DistributedHardware.DeviceManager
924
925**参数:**
926
927  | 参数名       | 类型                                     | 必填   | 说明                          |
928  | -------- | ---------------------------------------- | ---- | --------------------------- |
929  | type     | string                                   | 是    | 根据应用程序的包名取消注册设备状态回调。        |
930  | callback | Callback&lt;{&nbsp;action:&nbsp;[DeviceStateChangeAction](#devicestatechangeaction),&nbsp;device:&nbsp;[DeviceInfo](#deviceinfo)&nbsp;}&gt; | 否    | 指示要取消注册的设备状态回调,返回设备状态和设备信息。 |
931
932**示例:**
933
934  ```js
935  try {
936    dmInstance.off('deviceStateChange', (data) => {
937      console.info('deviceStateChange' + JSON.stringify(data));
938    });
939  } catch (err) {
940    console.error("deviceStateChange errCode:" + err.code + ",errMessage:" + err.message);
941  }
942  ```
943
944### on('deviceFound')
945
946on(type: 'deviceFound', callback: Callback&lt;{ subscribeId: number, device: DeviceInfo }&gt;): void
947
948注册发现设备回调监听。
949
950**系统能力**:SystemCapability.DistributedHardware.DeviceManager
951
952**参数:**
953
954  | 参数名       | 类型                                     | 必填   | 说明                         |
955  | -------- | ---------------------------------------- | ---- | -------------------------- |
956  | type     | string                                   | 是    | 注册设备发现回调,以便在发现周边设备时通知应用程序。 |
957  | callback | Callback&lt;{&nbsp;subscribeId:&nbsp;number,&nbsp;device:&nbsp;[DeviceInfo](#deviceinfo)&nbsp;}&gt; | 是    | 注册设备发现的回调方法。               |
958
959**示例:**
960
961  ```js
962  try {
963    dmInstance.on('deviceFound', (data) => {
964      console.info("deviceFound:" + JSON.stringify(data));
965    });
966  } catch (err) {
967    console.error("deviceFound errCode:" + err.code + ",errMessage:" + err.message);
968  }
969  ```
970
971### off('deviceFound')
972
973off(type: 'deviceFound', callback?: Callback&lt;{ subscribeId: number, device: DeviceInfo }&gt;): void
974
975取消注册设备发现回调。
976
977**系统能力**:SystemCapability.DistributedHardware.DeviceManager
978
979**参数:**
980
981  | 参数名       | 类型                                     | 必填   | 说明                          |
982  | -------- | ---------------------------------------- | ---- | --------------------------- |
983  | type     | string                                   | 是    | 取消注册设备发现回调。                 |
984  | callback | Callback&lt;{&nbsp;subscribeId:&nbsp;number,&nbsp;device:&nbsp;[DeviceInfo](#deviceinfo)&nbsp;}&gt; | 否    | 指示要取消注册的设备发现回调,返回设备状态和设备信息。 |
985
986**示例:**
987
988  ```js
989  try {
990    dmInstance.off('deviceFound', (data) => {
991      console.info('deviceFound' + JSON.stringify(data));
992    });
993  } catch (err) {
994    console.error("deviceFound errCode:" + err.code + ",errMessage:" + err.message);
995  }
996  ```
997
998### on('discoverFail')
999
1000on(type: 'discoverFail', callback: Callback&lt;{ subscribeId: number, reason: number }&gt;): void
1001
1002注册设备发现失败回调监听。
1003
1004**系统能力**:SystemCapability.DistributedHardware.DeviceManager
1005
1006**参数:**
1007
1008  | 参数名       | 类型                                     | 必填   | 说明                             |
1009  | -------- | ---------------------------------------- | ---- | ------------------------------ |
1010  | type     | string                                   | 是    | 注册设备发现失败回调,以便在发现周边设备失败时通知应用程序。 |
1011  | callback | Callback&lt;{&nbsp;subscribeId:&nbsp;number,&nbsp;reason:&nbsp;number&nbsp;}&gt; | 是    | 注册设备发现失败的回调方法。                 |
1012
1013**示例:**
1014
1015  ```js
1016  try {
1017    dmInstance.on('discoverFail', (data) => {
1018        console.info("discoverFail on:" + JSON.stringify(data));
1019    });
1020  } catch (err) {
1021    console.error("discoverFail errCode:" + err.code + ",errMessage:" + err.message);
1022  }
1023  ```
1024
1025### off('discoverFail')
1026
1027off(type: 'discoverFail', callback?: Callback&lt;{ subscribeId: number, reason: number }&gt;): void
1028
1029取消注册设备发现失败回调。
1030
1031**系统能力**:SystemCapability.DistributedHardware.DeviceManager
1032
1033**参数:**
1034
1035  | 参数名       | 类型                                     | 必填   | 说明                |
1036  | -------- | ---------------------------------------- | ---- | ----------------- |
1037  | type     | string                                   | 是    | 取消注册设备发现失败回调。     |
1038  | callback | Callback&lt;{&nbsp;subscribeId:&nbsp;number,&nbsp;reason:&nbsp;number&nbsp;}&gt; | 否    | 指示要取消注册的设备发现失败回调。 |
1039
1040**示例:**
1041
1042  ```js
1043  try {
1044    dmInstance.off('discoverFail', (data) => {
1045      console.info('discoverFail' + JSON.stringify(data));
1046    });
1047  } catch (err) {
1048    console.error("discoverFail errCode:" + err.code + ",errMessage:" + err.message);
1049  }
1050  ```
1051
1052### on('publishSuccess')<sup>9+</sup>
1053
1054on(type: 'publishSuccess', callback: Callback&lt;{ publishId: number }&gt;): void
1055
1056注册发布设备发现回调监听。
1057
1058**系统能力**:SystemCapability.DistributedHardware.DeviceManager
1059
1060**参数:**
1061
1062  | 参数名     | 类型                                 | 必填 | 说明                       |
1063  | -------- | ---------------------------------------- | ---- | -------------------------- |
1064  | type     | string                                   | 是   | 注册发布设备成功回调,以便将发布成功时通知应用程序。 |
1065  | callback | Callback&lt;{&nbsp;publishId:&nbsp;number&nbsp;}&gt;    | 是   | 注册设备发布成功的回调方法。               |
1066
1067
1068**示例:**
1069
1070  ```js
1071  try {
1072    dmInstance.on('publishSuccess', (data) => {
1073      console.info("publishSuccess:" + JSON.stringify(data));
1074    });
1075  } catch (err) {
1076    console.error("publishSuccess errCode:" + err.code + ",errMessage:" + err.message);
1077  }
1078  ```
1079
1080### off('publishSuccess')<sup>9+</sup>
1081
1082off(type: 'publishSuccess', callback?: Callback&lt;{ publishId: number }&gt;): void
1083
1084取消注册设备发布成功回调。
1085
1086**系统能力**:SystemCapability.DistributedHardware.DeviceManager
1087
1088**参数:**
1089
1090  | 参数名     | 类型                                 | 必填 | 说明                          |
1091  | -------- | ---------------------------------------- | ---- | --------------------------- |
1092  | type     | string                                   | 是   | 取消注册设备发布成功回调。                 |
1093  | callback | Callback&lt;{&nbsp;publishId:&nbsp;number&nbsp;}&gt;    | 否   | 指示要取消注册的设备发布成功回调。 |
1094
1095**示例:**
1096
1097  ```js
1098  try {
1099    dmInstance.off('publishSuccess', (data) => {
1100      console.info('publishSuccess' + JSON.stringify(data));
1101    });
1102  } catch (err) {
1103    console.error("publishSuccess errCode:" + err.code + ",errMessage:" + err.message);
1104  }
1105  ```
1106
1107### on('publishFail')<sup>9+</sup>
1108
1109on(type: 'publishFail', callback: Callback&lt;{ publishId: number, reason: number }&gt;): void
1110
1111注册设备发布失败回调监听。
1112
1113**系统能力**:SystemCapability.DistributedHardware.DeviceManager
1114
1115**参数:**
1116
1117  | 参数名     | 类型                                              | 必填 | 说明                             |
1118  | -------- | ----------------------------------------------------- | ---- | ------------------------------ |
1119  | type     | string                                                | 是   | 注册设备发布失败回调,以便在发布设备失败时通知应用程序。 |
1120  | callback | Callback&lt;{&nbsp;publishId:&nbsp;number,&nbsp;reason:&nbsp;number&nbsp;}&gt; | 是   | 注册设备发布失败的回调方法。                 |
1121
1122**示例:**
1123
1124  ```js
1125  try {
1126    dmInstance.on('publishFail', (data) => {
1127      console.info("publishFail on:" + JSON.stringify(data));
1128    });
1129  } catch (err) {
1130    console.error("publishFail errCode:" + err.code + ",errMessage:" + err.message);
1131  }
1132  ```
1133
1134### off('publishFail')<sup>9+</sup>
1135
1136off(type: 'publishFail', callback?: Callback&lt;{ publishId: number, reason: number }&gt;): void
1137
1138取消注册设备发布失败回调。
1139
1140**系统能力**:SystemCapability.DistributedHardware.DeviceManager
1141
1142**参数:**
1143
1144  | 参数名     | 类型                                              | 必填 | 说明                |
1145  | -------- | ----------------------------------------------------- | ---- | ----------------- |
1146  | type     | string                                                | 是   | 取消注册设备发布失败回调。     |
1147  | callback | Callback&lt;{&nbsp;publishId:&nbsp;number,&nbsp;reason:&nbsp;number&nbsp;}&gt; | 否   | 指示要取消注册设备发布失败回调。 |
1148
1149**示例:**
1150
1151  ```js
1152  try {
1153    dmInstance.off('publishFail', (data) => {
1154      console.info('publishFail' + JSON.stringify(data));
1155    });
1156  } catch (err) {
1157    console.error("publishFail errCode:" + err.code + ",errMessage:" + err.message);
1158  }
1159  ```
1160
1161### on('serviceDie')
1162
1163on(type: 'serviceDie', callback: () =&gt; void): void
1164
1165注册设备管理服务死亡监听。
1166
1167**系统能力**:SystemCapability.DistributedHardware.DeviceManager
1168
1169**参数:**
1170
1171  | 参数名       | 类型                    | 必填   | 说明                                       |
1172  | -------- | ----------------------- | ---- | ---------------------------------------- |
1173  | type     | string                  | 是    | 注册serviceDie回调,以便在devicemanager服务异常终止时通知应用程序。 |
1174  | callback | ()&nbsp;=&gt;&nbsp;void | 是    | 注册serviceDie的回调方法。                       |
1175
1176**示例:**
1177
1178  ```js
1179  try {
1180    dmInstance.on("serviceDie", () => {
1181      console.info("serviceDie on");
1182    });
1183  } catch (err) {
1184    console.error("serviceDie errCode:" + err.code + ",errMessage:" + err.message);
1185  }
1186  ```
1187
1188### off('serviceDie')
1189
1190off(type: 'serviceDie', callback?: () =&gt; void): void
1191
1192取消注册设备管理服务死亡监听。
1193
1194**系统能力**:SystemCapability.DistributedHardware.DeviceManager
1195
1196**参数:**
1197
1198  | 参数名       | 类型                    | 必填   | 说明                                       |
1199  | -------- | ----------------------- | ---- | ---------------------------------------- |
1200  | type     | string                  | 是    | 取消注册serviceDie回调,以便在devicemanager服务异常终止时通知应用程序。 |
1201  | callback | ()&nbsp;=&gt;&nbsp;void | 否    | 取消注册serviceDie的回调方法。                     |
1202
1203**示例:**
1204
1205  ```js
1206  try {
1207    dmInstance.off("serviceDie", () => {
1208      console.info("serviceDie off");
1209    });
1210  } catch (err) {
1211    console.error("serviceDie errCode:" + err.code + ",errMessage:" + err.message);
1212  }
1213  ```