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