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