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