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