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