js-apis-distributedDeviceManager.md 40.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
# @ohos.distributedDeviceManager (设备管理)

本模块提供分布式设备管理能力。

应用可调用接口实现如下功能:

- 注册和解除注册设备上下线变化监听
- 发现周边不可信设备
- 认证和取消认证设备
- 查询可信设备列表
史晓晓 已提交
11
- 查询本地设备信息,包括设备名称,设备类型和设备标识等。
12 13 14 15 16 17 18 19 20


> **说明:**
>
> - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

Q
q30043944 已提交
21
```ts
22 23 24 25
import deviceManager from '@ohos.distributedDeviceManager';
```


史晓晓 已提交
26
## deviceManager.createDeviceManager
27

史晓晓 已提交
28
createDeviceManager(bundleName: string): DeviceManager;
29

30
创建一个设备管理实例。设备管理实例是分布式设备管理方法的调用入口。用于获取可信设备和本地设备的相关信息。
31 32 33 34 35 36 37 38

**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

**参数:**

| 参数名     | 类型                                                 | 必填 | 说明                                                        |
| ---------- | ---------------------------------------------------- | ---- | ----------------------------------------------------------- |
| bundleName | string                                               | 是   | 指示应用程序的Bundle名称。                                  |
史晓晓 已提交
39 40 41 42 43

**返回值:**

  | 名称                                        | 说明        |
  | ------------------------------------------- | --------- |
史晓晓 已提交
44
  | [DeviceManager](#devicemanager) | 返回设备管理器对象实例。 |
45 46 47

**示例:**

Q
q30043944 已提交
48 49 50 51
  ```ts
  import deviceManager from '@ohos.distributedDeviceManager'
  import { BusinessError } from '@ohos.base'

52
  try {
史晓晓 已提交
53
    let dmInstance = deviceManager.createDeviceManager("ohos.samples.jshelloworld");
54
  } catch(err) {
Q
q30043944 已提交
55 56
    let e: BusinessError = err as BusinessError;
    console.error("createDeviceManager errCode:" + e.code + ",errMessage:" + e.message);
57 58 59
  }
  ```

史晓晓 已提交
60
## deviceManager.releaseDeviceManager
61

史晓晓 已提交
62
releaseDeviceManager(deviceManager: DeviceManager): void;
63 64 65

设备管理实例不再使用后,通过该方法释放DeviceManager实例。

史晓晓 已提交
66 67
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

68 69
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

史晓晓 已提交
70 71 72 73 74 75
**参数:**

| 参数名     | 类型                                                 | 必填 | 说明                                |
| ---------- | ---------------------------------------------------- | ---- | --------------------------------- |
| deviceManager | [DeviceManager](#devicemanager)    | 是   | 设备管理器对象实例。                                  |

76 77 78 79 80 81 82 83 84 85
**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                        |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |

**示例:**

Q
q30043944 已提交
86 87 88
  ```ts
  import { BusinessError } from '@ohos.base'

89
  try {
史晓晓 已提交
90
    deviceManager.releaseDeviceManager(dmInstance);
91
  } catch (err) {
Q
q30043944 已提交
92 93
    let e: BusinessError = err as BusinessError;
    console.error("release device manager errCode:" + e.code + ",errMessage:" + e.message);
94 95 96
  }
  ```

史晓晓 已提交
97 98 99 100 101 102 103 104
## DeviceBasicInfo

分布式设备基本信息。

**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

| 名称                     | 类型                        | 必填   | 说明       |
| ---------------------- | ------------------------- | ---- | -------- |
105
| deviceId               | string                    | 是    | 设备的唯一标识。 实际值为udid-hash与appid基于sha256方式进行加密后的值。|
史晓晓 已提交
106
| deviceName             | string                    | 是    | 设备名称。    |
史晓晓 已提交
107
| deviceType             | string                    | 是    | 设备类型。    |
史晓晓 已提交
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
| networkId              | string                    | 否    | 设备网络标识。  |

## DeviceStateChange

表示设备状态。

**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

| 名称         | 值  | 说明              |
| ----------- | ---- | --------------- |
| UNKNOWN     | 0    | 设备物理上线,此时状态未知,在状态更改为可用之前,分布式业务无法使用。           |
| AVAILABLE   | 1    | 设备可用状态,表示设备间信息已在分布式数据中同步完成, 可以运行分布式业务。 |
| UNAVAILABLE | 2    | 设备物理下线,此时状态未知。           |


## DeviceManager

设备管理实例,用于获取可信设备和本地设备的相关信息。在调用DeviceManager的方法前,需要先通过createDeviceManager构建一个DeviceManager实例dmInstance。

史晓晓 已提交
127
### getAvailableDeviceListSync
128

史晓晓 已提交
129
getAvailableDeviceListSync(): Array<DeviceBasicInfo>;
130 131 132

同步获取所有可信设备列表。

史晓晓 已提交
133 134
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

135 136 137 138 139 140
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**返回值:**

  | 名称                                        | 说明        |
  | ------------------------------------------- | --------- |
史晓晓 已提交
141
  | Array<[DeviceBasicInfo](#devicebasicinfo)> | 返回可信设备列表。 |
142 143 144 145 146 147 148 149 150 151 152

**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                        |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |

**示例:**

Q
q30043944 已提交
153 154 155 156
  ```ts
  import deviceManager from '@ohos.distributedDeviceManager'
  import { BusinessError } from '@ohos.base'

157
  try {
Q
q30043944 已提交
158
    let deviceInfoList: Array<deviceManager.eviceBasicInfo> = dmInstance.getAvailableDeviceListSync();
159
  } catch (err) {
Q
q30043944 已提交
160 161
    let e: BusinessError = err as BusinessError;
    console.error("getAvailableDeviceListSync errCode:" + e.code + ",errMessage:" + e.message);
162 163 164
  }
  ```

史晓晓 已提交
165
### getAvailableDeviceList
166

史晓晓 已提交
167
getAvailableDeviceList(callback:AsyncCallback&lt;Array&lt;DeviceBasicInfo&gt;&gt;): void;
168 169 170

获取所有可信设备列表。使用callback异步回调。

史晓晓 已提交
171 172
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

173 174 175 176 177 178
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型                                     | 必填   | 说明                    |
  | -------- | ---------------------------------------- | ---- | --------------------- |
史晓晓 已提交
179
  | callback | AsyncCallback&lt;Array&lt;[DeviceBasicInfo](#devicebasicinfo)&gt;&gt; | 是    | 获取所有可信设备列表的回调,返回设备信息。 |
180 181 182 183 184 185 186 187 188 189 190

**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                        |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |

**示例:**

Q
q30043944 已提交
191 192 193 194
  ```ts
  import deviceManager from '@ohos.distributedDeviceManager'
  import { BusinessError } from '@ohos.base'

195
  try {
Q
q30043944 已提交
196
    dmInstance.getAvailableDeviceList((err: BusinessError, data: Array<deviceManager.DeviceBasicInfo>) => {
197 198 199 200 201 202 203
      if (err) {
        console.error("getAvailableDeviceList errCode:" + err.code + ",errMessage:" + err.message);
        return;
      }
      console.log('get available device info: ' + JSON.stringify(data));
    });
  } catch (err) {
Q
q30043944 已提交
204 205
    let e: BusinessError = err as BusinessError;
    console.error("getAvailableDeviceList errCode:" + e.code + ",errMessage:" + e.message);
206 207 208
  }
  ```

史晓晓 已提交
209
### getAvailableDeviceList
210

史晓晓 已提交
211
getAvailableDeviceList(): Promise&lt;Array&lt;DeviceBasicInfo&gt;&gt;;
212 213 214

获取所有可信设备列表。使用Promise异步回调。

史晓晓 已提交
215 216
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

217 218 219 220 221 222
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**返回值:**

  | 类型                                                       | 说明                               |
  | ---------------------------------------------------------- | ---------------------------------- |
史晓晓 已提交
223
  | Promise&lt;Array&lt;[DeviceBasicInfo](#devicebasicinfo)&gt;&gt; | Promise实例,用于获取异步返回结果。 |
224 225 226 227 228 229 230 231 232 233 234

**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                        |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |

**示例:**

Q
q30043944 已提交
235 236 237 238 239
  ```ts
  import deviceManager from '@ohos.distributedDeviceManager'
  import { BusinessError } from '@ohos.base'

  dmInstance.getAvailableDeviceList().then((data: Array<deviceManager.DeviceBasicInfo>) => {
240
    console.log('get available device info: ' + JSON.stringify(data));
Q
q30043944 已提交
241
    }).catch((err: BusinessError) => {
242 243 244 245
      console.error("getAvailableDeviceList errCode:" + err.code + ",errMessage:" + err.message);
  });
  ```

史晓晓 已提交
246
### getLocalDeviceNetworkId
247

史晓晓 已提交
248
getLocalDeviceNetworkId(): string;
249

史晓晓 已提交
250
获取本地设备网络标识。
251

史晓晓 已提交
252 253
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**返回值:**

  | 名称                      | 说明              |
  | ------------------------- | ---------------- |
  | string | 返回本地设备网络标识。 |

**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                        |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |

**示例:**

Q
q30043944 已提交
272 273 274
  ```ts
  import { BusinessError } from '@ohos.base'

275
  try {
Q
q30043944 已提交
276
    let deviceNetworkId: string = dmInstance.getLocalDeviceNetworkId();
277 278
    console.log('local device networkId: ' + JSON.stringify(deviceNetworkId));
  } catch (err) {
Q
q30043944 已提交
279 280
    let e: BusinessError = err as BusinessError;
    console.error("getLocalDeviceNetworkId errCode:" + e.code + ",errMessage:" + e.message);
281 282 283
  }
  ```

史晓晓 已提交
284
### getLocalDeviceName
285

史晓晓 已提交
286
getLocalDeviceName(): string;
287

史晓晓 已提交
288
获取本地设备名称。
289

史晓晓 已提交
290 291
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**返回值:**

  | 名称                      | 说明              |
  | ------------------------- | ---------------- |
  | string                    | 返回本地设备名称。 |

**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                        |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |

**示例:**

Q
q30043944 已提交
310 311 312
  ```ts
  import { BusinessError } from '@ohos.base'

313
  try {
Q
q30043944 已提交
314
    let deviceName: string = dmInstance.getLocalDeviceName();
315 316
    console.log('local device name: ' + JSON.stringify(deviceName));
  } catch (err) {
Q
q30043944 已提交
317 318
    let e: BusinessError = err as BusinessError;
    console.error("getLocalDeviceName errCode:" + e.code + ",errMessage:" + e.message);
319 320 321
  }
  ```

史晓晓 已提交
322
### getLocalDeviceType
323

史晓晓 已提交
324
getLocalDeviceType(): number;
325

史晓晓 已提交
326
获取本地设备类型。
327

史晓晓 已提交
328 329
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**返回值:**

  | 名称                      | 说明              |
  | ------------------------- | ---------------- |
  | number                    | 返回本地设备类型。 |

**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                        |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |

**示例:**

Q
q30043944 已提交
348 349 350
  ```ts
  import { BusinessError } from '@ohos.base'

351
  try {
Q
q30043944 已提交
352
    let deviceType: number = dmInstance.getLocalDeviceType();
353 354
    console.log('local device type: ' + JSON.stringify(deviceType));
  } catch (err) {
Q
q30043944 已提交
355 356
    let e: BusinessError = err as BusinessError;
    console.error("getLocalDeviceType errCode:" + e.code + ",errMessage:" + e.message);
357 358 359
  }
  ```

史晓晓 已提交
360
### getLocalDeviceId
361

史晓晓 已提交
362
getLocalDeviceId(): string;
363

史晓晓 已提交
364
获取本地设备id。
365

史晓晓 已提交
366 367
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**返回值:**

  | 名称                      | 说明              |
  | ------------------------- | ---------------- |
  | string                    | 返回本地设备id。 |

**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                        |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |

**示例:**

Q
q30043944 已提交
386 387 388
  ```ts
  import { BusinessError } from '@ohos.base'

389
  try {
Q
q30043944 已提交
390
    let deviceId: string = dmInstance.getLocalDeviceId();
391 392
    console.log('local device id: ' + JSON.stringify(deviceId));
  } catch (err) {
Q
q30043944 已提交
393 394
    let e: BusinessError = err as BusinessError;
    console.error("getLocalDeviceId errCode:" + e.code + ",errMessage:" + e.message);
395 396 397
  }
  ```

史晓晓 已提交
398
### getDeviceName
399

史晓晓 已提交
400
getDeviceName(networkId: string): string;
401

史晓晓 已提交
402
通过指定设备的网络标识获取该设备名称。
403

史晓晓 已提交
404 405
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型                                     | 必填   | 说明        |
  | -------- | ---------------------------------------- | ---- | --------- |
  | networkId| string                                   | 是   | 设备的网络标识。 |

**返回值:**

  | 名称                      | 说明              |
  | ------------------------- | ---------------- |
  | string                    | 返回指定设备名称。 |

**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                        |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |

**示例:**

Q
q30043944 已提交
430 431 432
  ```ts
  import { BusinessError } from '@ohos.base'

433 434 435
  try {
    // 设备网络标识,可以从可信设备列表中获取
    let networkId = "xxxxxxx"
Q
q30043944 已提交
436
    let deviceName: string = dmInstance.getDeviceName(networkId);
437 438
    console.log('device name: ' + JSON.stringify(deviceName)); 
  } catch (err) {
Q
q30043944 已提交
439 440
    let e: BusinessError = err as BusinessError;
    console.error("getDeviceName errCode:" + e.code + ",errMessage:" + e.message);
441 442 443
  }
  ```

史晓晓 已提交
444
### getDeviceType
445

史晓晓 已提交
446
getDeviceType(networkId: string): number;
447

史晓晓 已提交
448
通过指定设备的网络标识获取该设备类型。
449

史晓晓 已提交
450 451
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型                                     | 必填   | 说明        |
  | -------- | ---------------------------------------- | ---- | --------- |
  | networkId| string                                   | 是   | 设备的网络标识。 |

**返回值:**

  | 名称                      | 说明              |
  | ------------------------- | ---------------- |
  | number                    | 返回指定设备类型。 |

**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                        |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |

**示例:**

Q
q30043944 已提交
476 477 478
  ```ts
  import { BusinessError } from '@ohos.base'

479 480 481
  try {
    // 设备网络标识,可以从可信设备列表中获取
    let networkId = "xxxxxxx"
Q
q30043944 已提交
482
    let deviceType: number = dmInstance.getDeviceType(networkId);
483 484
    console.log('device type: ' + JSON.stringify(deviceType)); 
  } catch (err) {
Q
q30043944 已提交
485 486
    let e: BusinessError = err as BusinessError;
    console.error("getDeviceType errCode:" + e.code + ",errMessage:" + e.message);
487 488 489
  }
  ```

史晓晓 已提交
490
### startDiscovering
491

史晓晓 已提交
492
startDiscovering(discoverParam: {[key:&nbsp;string]:&nbsp;Object} , filterOptions?: {[key:&nbsp;string]:&nbsp;Object} ): void;
493 494 495

发现周边设备。发现状态持续两分钟,超过两分钟,会停止发现,最大发现数量99个。

史晓晓 已提交
496 497
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

498 499 500 501 502 503
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名            | 类型                        | 必填   | 说明    |
  | ------------- | ------------------------------- | ---- | -----  |
史晓晓 已提交
504 505
  | discoverParam  | {[key:&nbsp;string]:&nbsp;Object}      | 是   | 发现标识。 标识发现的目标类型。<br>discoverTargetType: 发现目标默认为设备,值为1。|
  | filterOptions | {[key:&nbsp;string]:&nbsp;Object}          | 否   | 发现设备过滤信息。可选,默认为undefined,发现未上线设备。会携带以下key值:<br>availableStatus(0-1): 仅发现设备可信,值为0表示设备不可信。<br />-0: 设备离线,客户端需要通过调用bindTarget绑定设备。<br />-1: 设备已在线,客户可以进行连接。<br>discoverDistance(0-100): 发现距离本地一定距离内的设备,单位为cm。 <br>authenticationStatus(0-1): 根据不同的认证状态发现设备:<br />-0: 设备未认证。<br />-1:设备已认证。<br>authorizationType(0-2):根据不同的授权类型发现设备:<br />-0: 根据临时协商的会话密钥认证的设备。<br />-1: 基于同账号密钥进行身份验证的设备。<br />-2: 基于不同账号凭据密钥认证的设备。|
506 507 508 509 510 511 512 513

**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                        |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
史晓晓 已提交
514
| 11600104 | Discovery repeats.                                              |
515 516 517

**示例:**

Q
q30043944 已提交
518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533
  ```ts
  import { BusinessError } from '@ohos.base'

  interface DiscoverParam {
    discoverTargetType: number
  }

  interface FilterOptions {
    availableStatus: number,
    discoverDistance: number,
    authenticationStatus: number,
    authorizationType: number
  }

  let discoverParam: DiscoverParam = {
    discoverTargetType: 1
史晓晓 已提交
534
  };
Q
q30043944 已提交
535 536 537 538 539 540

  let filterOptions: FilterOptions = {
    availableStatus: 1,
    discoverDistance: 50,
    authenticationStatus: 0,
    authorizationType: 0
541
  };
Q
q30043944 已提交
542

543
  try {
史晓晓 已提交
544
    dmInstance.startDiscovering(discoverParam, filterOptions); // 当有设备发现时,通过discoverSuccess回调通知给应用程序
545
  } catch (err) {
Q
q30043944 已提交
546 547
    let e: BusinessError = err as BusinessError;
    console.error("startDiscovering errCode:" + e.code + ",errMessage:" + e.message);
548 549 550
  }
  ```

史晓晓 已提交
551
### stopDiscovering
552

史晓晓 已提交
553
stopDiscovering(): void;
554 555 556

停止发现周边设备。

史晓晓 已提交
557 558
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

559 560 561 562 563 564 565 566 567
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                        |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
史晓晓 已提交
568
| 11600104 | Stop discovery repeats.                                         |
569 570 571

**示例:**

Q
q30043944 已提交
572 573 574
  ```ts
  import { BusinessError } from '@ohos.base'

575
  try {
史晓晓 已提交
576
    dmInstance.stopDiscovering();
577
  } catch (err) {
Q
q30043944 已提交
578 579
    let e: BusinessError = err as BusinessError;
    console.error("stopDiscovering errCode:" + e.code + ",errMessage:" + e.message);
580 581 582
  }
  ```

史晓晓 已提交
583
### bindTarget
584

史晓晓 已提交
585
bindTarget(deviceId: string, bindParam: {[key:&nbsp;string]:&nbsp;Object} , callback: AsyncCallback&lt;{deviceId: string}>): void;
586 587 588

认证设备。

史晓晓 已提交
589 590
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

591 592 593 594 595 596 597
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名     | 类型                                                | 必填  | 说明         |
  | ---------- | --------------------------------------------------- | ----- | ------------ |
  | deviceId   | string                                              | 是    | 设备标识。   |
史晓晓 已提交
598
  | bindParam  | {[key:&nbsp;string]:&nbsp;Object}                             | 是    | 认证参数。由开发者自行决定传入的键值对。默认会携带以下key值: <br>bindType 此值是绑定的类型。<br />-1 PIN码。<br />-2 二维码。<br />-3 NFC。 <br />-4 无交互。<br>targetPkgName 绑定目标的包名。<br>appName 尝试绑定目标的应用程序名称。<br>appOperation 应用程序要绑定目标的原因。<br>customDescription 操作的详细说明。   |
599 600 601 602 603 604 605 606 607 608 609 610 611
  | callback   | AsyncCallback&lt;{deviceId:&nbsp;string,&nbsp;}&gt; | 是    | 认证结果回调 |

**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                        |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
| 11600103 | Bind invalid.                                                   |

**示例:**

Q
q30043944 已提交
612 613 614 615 616 617 618 619 620 621 622 623 624 625 626
  ```ts
  import { BusinessError } from '@ohos.base'

  class Data {
    deviceId: string = ""
  }

  interface BindParam {
    bindType: number, // 认证类型: 1 - 无帐号PIN码认证
    targetPkgName: string,
    appName: string,
    appOperation: string,
    customDescription: string
  }

627
  // 认证的设备信息,可以从发现的结果中获取
Q
q30043944 已提交
628 629 630 631 632 633 634
  let deviceId = "XXXXXXXX";
  let bindParam: BindParam = {
    bindType: 1, // 认证类型: 1 - 无帐号PIN码认证
    targetPkgName: 'xxxx',
    appName: 'xxxx',
    appOperation: 'xxxx',
    customDescription: 'xxxx'
635 636
  }
  try {
Q
q30043944 已提交
637
    dmInstance.bindTarget(deviceId, bindParam, (err: BusinessError, data: Data) => {
638
      if (err) {
史晓晓 已提交
639
          console.error("bindTarget errCode:" + err.code + ",errMessage:" + err.message);
640 641
          return;
      }
史晓晓 已提交
642
      console.info("bindTarget result:" + JSON.stringify(data));
643 644
    });
  } catch (err) {
Q
q30043944 已提交
645 646
    let e: BusinessError = err as BusinessError;
    console.error("bindTarget errCode:" + e.code + ",errMessage:" + e.message);
647 648 649
  }
  ```

史晓晓 已提交
650
### unbindTarget
651

史晓晓 已提交
652
unbindTarget(deviceId: string): void;
653 654 655

解除认证设备。

史晓晓 已提交
656 657
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名   | 类型                      | 必填 | 说明       |
  | -------- | ------------------------- | ---- | ---------- |
  | deviceId | string                    | 是   | 设备标识。 |

**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                        |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |

**示例:**

Q
q30043944 已提交
676 677 678
  ```ts
  import { BusinessError } from '@ohos.base'

679
  try {
Q
q30043944 已提交
680
    let deviceId = "XXXXXXXX";
史晓晓 已提交
681
    dmInstance.unbindTarget(deviceId);
682
  } catch (err) {
Q
q30043944 已提交
683 684
    let e: BusinessError = err as BusinessError;
    console.error("unbindTarget errCode:" + e.code + ",errMessage:" + e.message);
685 686 687
  }
  ```

史晓晓 已提交
688
### replyUiAction
689

史晓晓 已提交
690
replyUiAction(action: number, actionResult: string): void;
691

史晓晓 已提交
692
回复用户ui操作行为。此接口只能被devicemanager的PIN码hap使用。
693

史晓晓 已提交
694 695
**需要权限**:ohos.permission.ACCESS_SERVICE_DM

696 697 698 699 700 701 702 703
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**系统API**: 此接口为系统接口。

**参数:**

  | 参数名       | 类型            | 必填  | 说明                |
  | ------------- | --------------- | ---- | ------------------- |
史晓晓 已提交
704
  | action        | number          | 是    | 用户操作动作。       |
史晓晓 已提交
705
  | actionResult        | string          | 是    | 表示用户操作结果。 |
706 707 708

**示例:**

Q
q30043944 已提交
709 710 711
  ```ts
  import { BusinessError } from '@ohos.base'

712 713
 try {
    /*
史晓晓 已提交
714 715 716 717 718 719
      action = 0 - 允许授权
      action = 1 - 取消授权
      action = 2 - 授权框用户操作超时
      action = 3 - 取消pin码框展示
      action = 4 - 取消pin码输入框展示
      action = 5 - pin码输入框确定操作
720 721
    */
    let operation = 0;
史晓晓 已提交
722
    dmInstance.replyUiAction(operation, "extra")
723
    } catch (err) {
Q
q30043944 已提交
724 725
      let e: BusinessError = err as BusinessError;
      console.error("replyUiAction errCode:" + e.code + ",errMessage:" + e.message);
726 727 728
  }
  ```

史晓晓 已提交
729
### on('replyResult')
730

史晓晓 已提交
731
on(type: 'replyResult', callback: Callback&lt;{ param: string}&gt;): void;
732

史晓晓 已提交
733
回复UI操作结果回调。
734

史晓晓 已提交
735 736
**需要权限**:ohos.permission.ACCESS_SERVICE_DM

737 738 739 740 741 742 743 744 745 746 747 748 749
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**系统API**: 此接口为系统接口。

**参数:**

  | 参数名      | 类型                             | 必填 | 说明                            |
  | -------- | ------------------------------------ | ---- | ------------------------------ |
  | type     | string                                | 是  | 注册的设备管理器 ui 状态回调,以便在状态改变时通知应用。 |
  | callback | Callback&lt;{&nbsp;param:&nbsp;string}&gt; | 是  | 指示要注册的设备管理器 ui 状态回调,返回ui状态。        |

**示例:**

Q
q30043944 已提交
750 751 752 753 754 755 756 757 758 759 760
  ```ts
  import { BusinessError } from '@ohos.base'

  class Data {
    param: string = ""
  }

  interface TmpStr {
    verifyFailed: boolean
  }

761
  try {
Q
q30043944 已提交
762
    dmInstance.on('replyResult', (data: Data) => {
史晓晓 已提交
763
    console.log("replyResult executed, dialog closed" + JSON.stringify(data))
Q
q30043944 已提交
764 765
    let tmpStr: TmpStr = JSON.parse(data.param)
    let isShow = tmpStr.verifyFailed
史晓晓 已提交
766
    console.log("replyResult executed, dialog closed" + isShow)
767 768
  });
  } catch (err) {
Q
q30043944 已提交
769 770
    let e: BusinessError = err as BusinessError;
    console.error("replyResult errCode:" + e.code + ",errMessage:" + e.message);
771 772 773
  }
  ```

史晓晓 已提交
774
### off('replyResult')
775

史晓晓 已提交
776
off(type: 'replyResult', callback?: Callback&lt;{ param: string}&gt;): void;
777

史晓晓 已提交
778
取消回复UI操作结果回调。
779

史晓晓 已提交
780 781
**需要权限**:ohos.permission.ACCESS_SERVICE_DM

782 783 784 785 786 787 788 789 790 791 792 793 794
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**系统API**: 此接口为系统接口。

**参数:**

  | 参数名      | 类型                              | 必填 | 说明                            |
  | -------- | ------------------------------------- | ---- | ------------------------------ |
  | type     | string                                | 是   | 取消注册的设备管理器 ui 状态回调。 |
  | callback | Callback&lt;{&nbsp;param:&nbsp;string}&gt; | 否   | 指示要取消注册的设备管理器 ui 状态,返回UI状态。 |

**示例:**

Q
q30043944 已提交
795 796 797
  ```ts
  import { BusinessError } from '@ohos.base'

798
  try {
史晓晓 已提交
799
    dmInstance.off('replyResult');
800
  } catch (err) {
Q
q30043944 已提交
801 802
    let e: BusinessError = err as BusinessError;
    console.error("replyResult errCode:" + e.code + ",errMessage:" + e.message);
803 804 805
  }
  ```

史晓晓 已提交
806
### on('deviceStateChange')
807

史晓晓 已提交
808
on(type: 'deviceStateChange', callback: Callback&lt;{ action: DeviceStateChange, device: DeviceBasicInfo }&gt;): void;
809 810 811

注册设备状态回调。

史晓晓 已提交
812 813
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

814 815 816 817 818 819 820
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型                                     | 必填   | 说明                             |
  | -------- | ---------------------------------------- | ---- | ------------------------------ |
  | type     | string                                   | 是    | 注册设备状态回调,固定为deviceStateChange。 |
史晓晓 已提交
821
  | callback | Callback&lt;{&nbsp;action:&nbsp;[DeviceStateChange](#devicestatechange),&nbsp;device:&nbsp;[DeviceBasicInfo](#devicebasicinfo)&nbsp;}&gt; | 是    | 指示要注册的设备状态回调,返回设备状态和设备信息。      |
822 823 824

**示例:**

Q
q30043944 已提交
825 826 827 828 829 830
  ```ts
  import deviceManager from '@ohos.distributedDeviceManager'
  import { BusinessError } from '@ohos.base'

  class Data {
    action: deviceManager.DeviceStateChange = 0
Q
q30043944 已提交
831 832 833 834 835 836
    device: deviceManager.DeviceBasicInfo = {
      deviceId: "",
      deviceName: "",
      deviceType: "",
      networkId: "",
    }
Q
q30043944 已提交
837 838
  }

839
  try {
Q
q30043944 已提交
840
    dmInstance.on('deviceStateChange', (data: Data) => {
史晓晓 已提交
841
      console.info("deviceStateChange on:" + JSON.stringify(data));
842 843
    });
  } catch (err) {
Q
q30043944 已提交
844 845
    let e: BusinessError = err as BusinessError;
    console.error("deviceStateChange errCode:" + e.code + ",errMessage:" + e.message);
846 847 848
  }
  ```

史晓晓 已提交
849
### off('deviceStateChange')
850

史晓晓 已提交
851
off(type: 'deviceStateChange', callback?: Callback&lt;{ action: DeviceStateChange, device: DeviceBasicInfo }&gt;): void;
852 853 854

取消注册设备状态回调。

史晓晓 已提交
855 856
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

857 858 859 860 861 862 863
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型                                     | 必填   | 说明                          |
  | -------- | ---------------------------------------- | ---- | --------------------------- |
  | type     | string                                   | 是    | 根据应用程序的包名取消注册设备状态回调。        |
史晓晓 已提交
864
  | callback | Callback&lt;{&nbsp;action:&nbsp;[deviceStateChange](#devicestatechange),&nbsp;device:&nbsp;[DeviceBasicInfo](#devicebasicinfo)&nbsp;}&gt; | 否    | 指示要取消注册的设备状态回调,返回设备状态和设备信息。 |
865 866 867

**示例:**

Q
q30043944 已提交
868 869 870 871 872 873
  ```ts
  import deviceManager from '@ohos.distributedDeviceManager'
  import { BusinessError } from '@ohos.base'

  class Data {
    action: deviceManager.DeviceStateChange = 0
Q
q30043944 已提交
874 875 876 877 878 879
    device: deviceManager.DeviceBasicInfo = {
      deviceId: "",
      deviceName: "",
      deviceType: "",
      networkId: "",
    }
Q
q30043944 已提交
880 881
  }

882
  try {
Q
q30043944 已提交
883
    dmInstance.off('deviceStatusChange', (data: Data) => {
884 885 886
      console.info('deviceStatusChange' + JSON.stringify(data));
    });
  } catch (err) {
Q
q30043944 已提交
887 888
    let e: BusinessError = err as BusinessError;
    console.error("deviceStatusChange errCode:" + e.code + ",errMessage:" + e.message);
889 890 891
  }
  ```

史晓晓 已提交
892
### on('discoverSuccess')
893

史晓晓 已提交
894
on(type: 'discoverSuccess', callback: Callback&lt;{ device: DeviceBasicInfo }&gt;): void;
895 896 897

注册发现设备成功回调监听。

史晓晓 已提交
898 899
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

900 901 902 903 904 905 906
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型                                     | 必填   | 说明                         |
  | -------- | ---------------------------------------- | ---- | -------------------------- |
  | type     | string                                   | 是    | 注册设备发现回调,以便在发现周边设备时通知应用程序。 |
史晓晓 已提交
907
  | callback | Callback&lt;{&nbsp;device:&nbsp;[DeviceBasicInfo](#devicebasicinfo)&nbsp;}&gt; | 是    | 注册设备发现的回调方法。               |
908 909 910

**示例:**

Q
q30043944 已提交
911 912 913 914 915
  ```ts
  import deviceManager from '@ohos.distributedDeviceManager'
  import { BusinessError } from '@ohos.base'

  class Data {
Q
q30043944 已提交
916 917 918 919 920 921
    device: deviceManager.DeviceBasicInfo = {
      deviceId: "",
      deviceName: "",
      deviceType: "",
      networkId: "",
    }
Q
q30043944 已提交
922 923
  }
  
924
  try {
Q
q30043944 已提交
925
    dmInstance.on('discoverSuccess', (data: Data) => {
926 927 928
      console.info("discoverSuccess:" + JSON.stringify(data));
    });
  } catch (err) {
Q
q30043944 已提交
929 930
    let e: BusinessError = err as BusinessError;
    console.error("discoverSuccess errCode:" + e.code + ",errMessage:" + e.message);
931 932 933
  }
  ```

史晓晓 已提交
934
### off('discoverSuccess')
935

史晓晓 已提交
936
off(type: 'discoverSuccess', callback?: Callback&lt;{ device: DeviceBasicInfo }&gt;): void;
937

史晓晓 已提交
938
取消注册设备发现成功回调。
939

史晓晓 已提交
940 941
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

942 943 944 945 946 947 948
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型                                     | 必填   | 说明                          |
  | -------- | ---------------------------------------- | ---- | --------------------------- |
  | type     | string                                   | 是    | 取消注册设备发现回调。                 |
史晓晓 已提交
949
  | callback | Callback&lt;{&nbsp;device:&nbsp;[DeviceBasicInfo](#devicebasicinfo)&nbsp;}&gt; | 否    | 指示要取消注册的设备发现回调,返回设备状态和设备信息。 |
950 951 952

**示例:**

Q
q30043944 已提交
953 954 955 956 957
  ```ts
  import deviceManager from '@ohos.distributedDeviceManager'
  import { BusinessError } from '@ohos.base'

  class Data {
Q
q30043944 已提交
958 959 960 961 962 963
    device: deviceManager.DeviceBasicInfo = {
      deviceId: "",
      deviceName: "",
      deviceType: "",
      networkId: "",
    }
Q
q30043944 已提交
964 965
  }

966
  try {
Q
q30043944 已提交
967
    dmInstance.off('discoverSuccess', (data: Data) => {
968 969 970
      console.info('discoverSuccess' + JSON.stringify(data));
    });
  } catch (err) {
Q
q30043944 已提交
971 972
    let e: BusinessError = err as BusinessError;
    console.error("discoverSuccess errCode:" + e.code + ",errMessage:" + e.message);
973 974 975
  }
  ```

976 977
### on('deviceNameChange')

史晓晓 已提交
978
on(type: 'deviceNameChange', callback: Callback&lt;{ deviceName: string }&gt;): void;
979

史晓晓 已提交
980
注册设备名称变更回调监听。
981

史晓晓 已提交
982 983
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

984 985 986 987 988 989 990 991 992 993 994
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型                                     | 必填   | 说明                             |
  | -------- | ---------------------------------------- | ---- | ------------------------------ |
  | type     | string                                   | 是    | 注册设备名称改变回调,以便在设备名称改变时通知应用程序。 |
  | callback | Callback&lt;{&nbsp;deviceName:&nbsp;string}&gt; | 是    | 注册设备名称改变的回调方法。                 |

**示例:**

Q
q30043944 已提交
995 996 997 998 999 1000 1001
  ```ts
  import { BusinessError } from '@ohos.base'

  class Data {
    deviceName: string = ""
  }

1002
  try {
Q
q30043944 已提交
1003
    dmInstance.on('deviceNameChange', (data: Data) => {
1004 1005 1006
        console.info("deviceNameChange on:" + JSON.stringify(data));
    });
  } catch (err) {
Q
q30043944 已提交
1007 1008
    let e: BusinessError = err as BusinessError;
    console.error("deviceNameChange errCode:" + e.code + ",errMessage:" + e.message);
1009 1010 1011 1012 1013
  }
  ```

### off('deviceNameChange')

史晓晓 已提交
1014
off(type: 'deviceNameChange', callback?: Callback&lt;{ deviceName: string }&gt;): void;
1015

史晓晓 已提交
1016
取消注册设备名称变更回调监听。
1017

史晓晓 已提交
1018 1019
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型                                     | 必填   | 说明                             |
  | -------- | ---------------------------------------- | ---- | ------------------------------ |
  | type     | string                                   | 是    | 取消注册设备名称改变回调。 |
  | callback | Callback&lt;{&nbsp;deviceName:&nbsp;string}&gt; | 否    | 指示要取消注册设备名称改变的回调方法。                 |

**示例:**

Q
q30043944 已提交
1031 1032 1033 1034 1035 1036 1037
  ```ts
  import { BusinessError } from '@ohos.base'

  class Data {
    deviceName: string = ""
  }

1038
  try {
Q
q30043944 已提交
1039
    dmInstance.off('deviceNameChange', (data: Data) => {
1040 1041 1042
      console.info('deviceNameChange' + JSON.stringify(data));
    });
  } catch (err) {
Q
q30043944 已提交
1043 1044
    let e: BusinessError = err as BusinessError;
    console.error("deviceNameChange errCode:" + e.code + ",errMessage:" + e.message);
1045 1046 1047
  }
  ```

史晓晓 已提交
1048
### on('discoverFailure')
1049

史晓晓 已提交
1050
on(type: 'discoverFailure', callback: Callback&lt;{ reason: number }&gt;): void;
1051 1052 1053

注册设备发现失败回调监听。

史晓晓 已提交
1054 1055
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

1056 1057 1058 1059 1060 1061 1062
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型                                     | 必填   | 说明                             |
  | -------- | ---------------------------------------- | ---- | ------------------------------ |
  | type     | string                                   | 是    | 注册设备发现失败回调,以便在发现周边设备失败时通知应用程序。 |
史晓晓 已提交
1063
  | callback | Callback&lt;{&nbsp;reason:&nbsp;number&nbsp;}&gt; | 是    | 注册设备发现失败的回调方法。                 |
1064 1065 1066

**示例:**

Q
q30043944 已提交
1067 1068 1069 1070 1071 1072 1073
  ```ts
  import { BusinessError } from '@ohos.base'

  class Data {
    reason: number = 0
  }

1074
  try {
Q
q30043944 已提交
1075
    dmInstance.on('discoverFailure', (data: Data) => {
史晓晓 已提交
1076
        console.info("discoverFailure on:" + JSON.stringify(data));
1077 1078
    });
  } catch (err) {
Q
q30043944 已提交
1079 1080
    let e: BusinessError = err as BusinessError;
    console.error("discoverFailure errCode:" + e.code + ",errMessage:" + e.message);
1081 1082 1083
  }
  ```

史晓晓 已提交
1084
### off('discoverFailure')
1085

史晓晓 已提交
1086
off(type: 'discoverFailure', callback?: Callback&lt;{ reason: number }&gt;): void;
1087 1088 1089

取消注册设备发现失败回调。

史晓晓 已提交
1090 1091
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

1092 1093 1094 1095 1096 1097 1098
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型                                     | 必填   | 说明                |
  | -------- | ---------------------------------------- | ---- | ----------------- |
  | type     | string                                   | 是    | 取消注册设备发现失败回调。     |
史晓晓 已提交
1099
  | callback | Callback&lt;{&nbsp;reason:&nbsp;number&nbsp;}&gt; | 否    | 指示要取消注册的设备发现失败回调。 |
1100 1101 1102

**示例:**

Q
q30043944 已提交
1103 1104 1105 1106 1107 1108 1109
  ```ts
  import { BusinessError } from '@ohos.base'

  class Data {
    reason: number = 0
  }

1110
  try {
Q
q30043944 已提交
1111
    dmInstance.off('discoverFailure', (data: Data) => {
史晓晓 已提交
1112
      console.info('discoverFailure' + JSON.stringify(data));
1113 1114
    });
  } catch (err) {
Q
q30043944 已提交
1115 1116
    let e: BusinessError = err as BusinessError;
    console.error("discoverFailure errCode:" + e.code + ",errMessage:" + e.message);
1117 1118 1119
  }
  ```

史晓晓 已提交
1120
### on('serviceDie')
1121

史晓晓 已提交
1122
on(type: 'serviceDie', callback?: Callback&lt;{}&gt;): void;
1123 1124 1125

注册设备管理服务死亡监听。

史晓晓 已提交
1126 1127
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

1128 1129 1130 1131 1132 1133 1134
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型                    | 必填   | 说明                                       |
  | -------- | ----------------------- | ---- | ---------------------------------------- |
  | type     | string                  | 是    | 注册serviceDie回调,以便在devicemanager服务异常终止时通知应用程序。 |
史晓晓 已提交
1135
  | callback | Callback&lt;{}&gt; | 否    | 注册serviceDie的回调方法。                       |
1136 1137 1138

**示例:**

Q
q30043944 已提交
1139 1140 1141
  ```ts
  import { BusinessError } from '@ohos.base'

1142 1143 1144 1145 1146
  try {
    dmInstance.on("serviceDie", () => {
      console.info("serviceDie on");
    });
  } catch (err) {
Q
q30043944 已提交
1147 1148
    let e: BusinessError = err as BusinessError;
    console.error("serviceDie errCode:" + e.code + ",errMessage:" + e.message);
1149 1150 1151
  }
  ```

史晓晓 已提交
1152
### off('serviceDie')
1153

史晓晓 已提交
1154
off(type: 'serviceDie', callback?: Callback&lt;{}&gt;): void;
1155 1156 1157

取消注册设备管理服务死亡监听。

史晓晓 已提交
1158 1159
**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC

1160 1161 1162 1163 1164 1165 1166
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型                    | 必填   | 说明                                       |
  | -------- | ----------------------- | ---- | ---------------------------------------- |
  | type     | string                  | 是    | 取消注册serviceDie回调,以便在devicemanager服务异常终止时通知应用程序。 |
史晓晓 已提交
1167
  | callback | Callback&lt;{}&gt; | 否    | 取消注册serviceDie的回调方法。                     |
1168 1169 1170

**示例:**

Q
q30043944 已提交
1171 1172 1173
  ```ts
  import { BusinessError } from '@ohos.base'

1174 1175 1176 1177 1178
  try {
    dmInstance.off("serviceDie", () => {
      console.info("serviceDie off");
    });
  } catch (err) {
Q
q30043944 已提交
1179 1180
    let e: BusinessError = err as BusinessError;
    console.error("serviceDie errCode:" + e.code + ",errMessage:" + e.message);
1181
  }
Q
q30043944 已提交
1182
  ```