1# @ohos.distributedsched.linkEnhance (增强连接) 2<!--Kit: Distributed Service Kit--> 3<!--Subsystem: DistributedSched--> 4<!--Owner: @wangJE--> 5<!--Designer: @lee_jet520--> 6<!--Tester: @Ytt-test--> 7<!--Adviser: @w_Machine_cc--> 8linkEnhance模块提供高效的蓝牙连接和数据传输功能,增强设备间连接的稳定性。使用多通道合并算法,增加设备间连接数,提升跨设备数据传输能力,改善用户使用体验。 9 10> **说明:** 11> 12> 本模块首批接口从API version 20开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 13 14## 导入模块 15 16```js 17import { linkEnhance } from '@kit.DistributedServiceKit'; 18``` 19 20## linkEnhance.createServer 21 22createServer(name: string): Server 23 24在服务端设备上,应用创建服务。通过start()开启后,该设备可作为服务端被其他设备连接。 25 26**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 27 28**系统能力**:SystemCapability.DistributedSched.AppCollaboration 29 30**参数:** 31 32| 参数名 | 类型 | 必填 | 说明 | 33| --------- | ---------------------------------------- | ---- | -------- | 34| name | string | 是 | 自定义的非空字符串,标识应用的服务名,最大长度255字节。 | 35 36**返回值:** 37 38| 类型 | 说明 | 39| ------------------- | ---------------- | 40| [Server](#server) | 创建成功的服务对象。 | 41 42**错误码:** 43 44以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 45 46| 错误码ID | 错误信息 | 47| ------- | -------------------------------- | 48| 201 | Permission denied.| 49| 32390203 | Duplicate server name.| 50| 32390206 | Invalid parameter. | 51 52**示例:** 53 54```ts 55import { linkEnhance } from '@kit.DistributedServiceKit'; 56import { BusinessError } from '@kit.BasicServicesKit'; 57import { hilog } from '@kit.PerformanceAnalysisKit'; 58const TAG = "testDemo"; 59 60try { 61 let name:string = "demo"; 62 hilog.info(0x0000, TAG, 'start sever name = ' + name); 63 // 使用服务名构造Server 64 let server: linkEnhance.Server = linkEnhance.createServer(name); 65} catch (err) { 66 hilog.info(0x0000, TAG, 'start sever errCode: ' + (err as BusinessError).code + ', errMessage: ' + 67 (err as BusinessError).message); 68} 69``` 70 71## linkEnhance.createConnection 72 73createConnection(deviceId: string, name: string): Connection 74 75作为客户端的设备创建连接对象,以便后续向服务端设备发起连接。 76 77**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 78 79**系统能力**:SystemCapability.DistributedSched.AppCollaboration 80 81**参数:** 82 83| 参数名 | 类型 | 必填 | 说明 | 84| --------- | --------------------------------------- | ---- | --------- | 85| deviceId | string | 是 | 连接的目标设备的deviceId,即对端设备的BLE MAC地址。BLE MAC的获取方法,请参考[查找设备](../../connectivity/bluetooth/ble-development-guide.md)。| 86| name | string | 是 | 连接的目标设备的服务名,非空字符串,最大长度255字节。| 87 88**返回值:** 89 90| 类型 | 说明 | 91| ------------------- | ---------------- | 92| [Connection](#connection) | 创建成功的连接对象。 | 93 94**错误码:** 95 96以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 97 98| 错误码ID | 错误信息 | 99| ------- | -------------------------------- | 100| 201 | Permission denied.| 101| 32390206 | Invalid parameter. | 102 103**示例:** 104 105 在客户端设备上,应用需要主动调用createConnection()接口创建连接对象。 106 107```ts 108import { linkEnhance } from '@kit.DistributedServiceKit'; 109import { BusinessError } from '@kit.BasicServicesKit'; 110import { hilog } from '@kit.PerformanceAnalysisKit'; 111const TAG = "testDemo"; 112 113try { 114 let peerDeviceId: string = "00:11:22:33:44:55"; 115 hilog.info(0x0000, TAG, 'connection sever deviceId = ' + peerDeviceId); 116 let connection: linkEnhance.Connection = linkEnhance.createConnection(peerDeviceId, "demo"); 117} catch (err) { 118 hilog.info(0x0000, TAG, 'errCode: ' + (err as BusinessError).code + ', errMessage: ' + 119 (err as BusinessError).message); 120} 121``` 122## Server 123 124服务对象,提供启动服务、停止服务、关闭服务、注册/取消注册服务端回调等方法。 125 126以下方法,在服务端设备上执行。 127 128### start() 129 130start(): void 131 132创建服务成功后,需要调用start()开启该服务,方可被客户端连接,最大服务个数为10。 133 134**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 135 136**系统能力**:SystemCapability.DistributedSched.AppCollaboration 137 138**错误码:** 139 140以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 141 142| 错误码ID | 错误信息 | 143| ------- | -------------------------------- | 144| 201 | Permission denied.| 145| 32390202 | The number of servers exceeds the limit. | 146| 32390300 | Internal error. | 147 148**示例:** 149 150```ts 151import { linkEnhance } from '@kit.DistributedServiceKit'; 152import { BusinessError } from '@kit.BasicServicesKit'; 153import { hilog } from '@kit.PerformanceAnalysisKit'; 154const TAG = "testDemo"; 155 156try { 157 let name: string = "demo"; 158 hilog.info(0x0000, TAG, 'start sever name = ' + name); 159 let server: linkEnhance.Server = linkEnhance.createServer(name); 160 server.start(); 161} catch (err) { 162 hilog.error(0x0000, TAG, 'start sever errCode: ' + (err as BusinessError).code + ', errMessage: ' + 163 (err as BusinessError).message); 164} 165``` 166### stop() 167 168stop(): void 169 170使用完服务时,调用`stop`停止服务,停止后可以调用`start`重新开启服务。 171 172**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 173 174**系统能力**:SystemCapability.DistributedSched.AppCollaboration 175 176**错误码:** 177 178以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 179 180| 错误码ID | 错误信息 | 181| ------- | -------------------------------- | 182| 201 | Permission denied.| 183 184**示例:** 185 186```ts 187import { linkEnhance } from '@kit.DistributedServiceKit'; 188import { BusinessError } from '@kit.BasicServicesKit'; 189import { hilog } from '@kit.PerformanceAnalysisKit'; 190const TAG = "testDemo"; 191 192try { 193 let name: string = "demo"; 194 hilog.info(0x0000, TAG, 'start sever name = ' + name); 195 let server: linkEnhance.Server = linkEnhance.createServer(name); 196 server.start(); 197 server.stop(); 198} catch (err) { 199 hilog.error(0x0000, TAG, 'start sever errCode: ' + (err as BusinessError).code + ', errMessage: ' + 200 (err as BusinessError).message); 201} 202``` 203 204### close() 205 206close(): void 207 208当业务执行完毕,服务端清理资源时,调用close()方法,销毁Server对象,释放相关资源。之后如果再次与对端设备交互,需要重新创建Server对象。 209 210**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 211 212**系统能力**:SystemCapability.DistributedSched.AppCollaboration 213 214**错误码:** 215 216以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 217 218| 错误码ID | 错误信息 | 219| ------- | -------------------------------- | 220| 201 | Permission denied.| 221 222**示例:** 223 224```ts 225import { linkEnhance } from '@kit.DistributedServiceKit'; 226import { BusinessError } from '@kit.BasicServicesKit'; 227import { hilog } from '@kit.PerformanceAnalysisKit'; 228const TAG = "testDemo"; 229 230try { 231 let name: string = "demo"; 232 hilog.info(0x0000, TAG, 'start sever name = ' + name); 233 let server: linkEnhance.Server = linkEnhance.createServer(name); 234 server.start(); 235 server.close(); 236} catch (err) { 237 hilog.error(0x0000, TAG, 'start sever errCode: ' + (err as BusinessError).code + ', errMessage: ' + 238 (err as BusinessError).message); 239} 240``` 241### on('connectionAccepted') 242 243on(type: 'connectionAccepted', callback: Callback<Connection>): void 244 245创建服务成功后,注册connectionAccepted事件的回调监听,等待对端连接。使用callback异步回调。 246 247**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 248 249**系统能力**:SystemCapability.DistributedSched.AppCollaboration 250 251**参数:** 252 253| 参数名 | 类型 | 必填 | 说明 | 254| --------- | ------------------------------------- | ---- | ----- | 255| type | string | 是 | 事件回调类型,支持的事件为'connectionAccepted',收到对端连接,触发该事件。 | 256| callback | Callback<[Connection](#connection)> | 是 | 注册的回调函数。[Connection](#connection)返回的连接对象。 | 257 258**错误码:** 259 260以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 261 262| 错误码ID | 错误信息 | 263| ------- | -------------------------------- | 264| 201 | Permission denied.| 265| 32390206 | Parameter invalid. | 266 267**示例:** 268 269```ts 270import { linkEnhance } from '@kit.DistributedServiceKit'; 271import { BusinessError } from '@kit.BasicServicesKit'; 272import { hilog } from '@kit.PerformanceAnalysisKit'; 273const TAG = "testDemo"; 274 275try { 276 let name: string = "demo"; 277 hilog.info(0x0000, TAG, 'start sever name = ' + name); 278 // 使用服务名构造Server 279 let server: linkEnhance.Server = linkEnhance.createServer(name); 280 281 // 订阅服务接收事件 282 server.on('connectionAccepted', (connection: linkEnhance.Connection): void => { 283 hilog.info(0x0000, TAG, 'serverOnCallback = ' + JSON.stringify(connection)); 284 }); 285 // 启动服务 286 server.start(); 287} catch (err) { 288 hilog.info(0x0000, TAG, 'start sever errCode: ' + (err as BusinessError).code + ', errMessage: ' + 289 (err as BusinessError).message); 290} 291``` 292### off('connectionAccepted') 293 294off(type: 'connectionAccepted', callback?: Callback<Connection>): void 295 296取消注册connectionAccepted事件的回调监听。使用callback异步回调。 297 298**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 299 300**系统能力**:SystemCapability.DistributedSched.AppCollaboration 301 302**参数:** 303 304| 参数名 | 类型 | 必填 | 说明 | 305| --------- | ------------------------------------- | ---- | ----- | 306| type | string | 是 | 事件回调类型,支持的事件为'connectionAccepted',收到对端连接,触发该事件。 | 307| callback | Callback<[Connection](#connection)> | 否 | 注册的回调函数。[Connection](#connection)返回的连接对象。 | 308 309**错误码:** 310 311以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 312 313| 错误码ID | 错误信息 | 314| ------- | -------------------------------- | 315| 201 | Permission denied.| 316| 32390206 | Parameter invalid. | 317 318**示例:** 319 320```ts 321import { linkEnhance } from '@kit.DistributedServiceKit'; 322import { BusinessError } from '@kit.BasicServicesKit'; 323import { hilog } from '@kit.PerformanceAnalysisKit'; 324const TAG = "testDemo"; 325 326try { 327 let name: string = "demo"; 328 hilog.info(0x0000, TAG, 'start sever name = ' + name); 329 // 使用服务名构造Server 330 let server: linkEnhance.Server = linkEnhance.createServer(name); 331 server.on('connectionAccepted', (connection: linkEnhance.Connection): void => { 332 hilog.info(0x0000, TAG, 'accpet new connection'); 333 }); 334 // 取消订阅服务接收 335 server.off('connectionAccepted', (connection: linkEnhance.Connection): void => { 336 hilog.info(0x0000, TAG, 'accpet new connection'); 337 }); 338} catch (err) { 339 hilog.error(0x0000, TAG, 'start sever errCode: ' + (err as BusinessError).code + ', errMessage: ' + 340 (err as BusinessError).message); 341} 342``` 343 344### on('serverStopped') 345 346on(type: 'serverStopped', callback: Callback<number>): void 347 348在创建服务成功后,注册serverStopped回调,监听服务异常停止。使用callback异步回调。 349 350**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 351 352**系统能力**:SystemCapability.DistributedSched.AppCollaboration 353 354**参数:** 355 356| 参数名 | 类型 | 必填 | 说明 | 357| --------- | ------------------------------------- | ---- | ----- | 358| type | string | 是 | 事件回调类型,支持的事件为'serverStopped',底层服务异常时,触发该事件。 | 359| callback | Callback<number> | 是 | 注册的回调函数,number为返回的错误码。 | 360 361**错误码:** 362 363以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 364 365| 错误码ID | 错误信息 | 366| ------- | -------------------------------- | 367| 201 | Permission denied.| 368| 32390206 | Parameter invalid. | 369 370**示例:** 371 372```ts 373import { linkEnhance } from '@kit.DistributedServiceKit'; 374import { BusinessError } from '@kit.BasicServicesKit'; 375import { hilog } from '@kit.PerformanceAnalysisKit'; 376const TAG = "testDemo"; 377 378try { 379 let name: string = "demo"; 380 hilog.info(0x0000, TAG, 'start sever name = ' + name); 381 // 使用服务名构造Server 382 let server: linkEnhance.Server = linkEnhance.createServer(name); 383 384 // 订阅服务停止 385 server.on('serverStopped', (reason: number): void => { 386 hilog.info(0x0000, TAG, 'serverStopped, reason= ' + reason); 387 }); 388 // 启动服务 389 server.start(); 390} catch (err) { 391 hilog.error(0x0000, TAG, 'start sever errCode: ' + (err as BusinessError).code + ', errMessage: ' + 392 (err as BusinessError).message); 393} 394``` 395 396### off('serverStopped') 397 398off(type: 'serverStopped', callback?: Callback<number>): void 399 400取消注册serverStopped事件的回调监听。使用callback异步回调。 401 402**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 403 404**系统能力**:SystemCapability.DistributedSched.AppCollaboration 405 406**参数:** 407 408| 参数名 | 类型 | 必填 | 说明 | 409| --------- | ------------------------------------- | ---- | ----- | 410| type | string | 是 | 事件回调类型,支持的事件为'serverStopped',底层服务异常时触发。 | 411| callback | Callback<number> | 否 | 注册的回调函数,number为返回的错误码。 | 412 413**错误码:** 414 415以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 416 417| 错误码ID | 错误信息 | 418| ------- | -------------------------------- | 419| 201 | Permission denied.| 420| 32390206 | Parameter invalid. | 421 422**示例:** 423 424```ts 425import { linkEnhance } from '@kit.DistributedServiceKit'; 426import { BusinessError } from '@kit.BasicServicesKit'; 427import { hilog } from '@kit.PerformanceAnalysisKit'; 428const TAG = "testDemo"; 429 430try { 431 let name: string = "demo"; 432 hilog.info(0x0000, TAG, 'start sever name = ' + name); 433 // 使用服务名构造Server 434 let server: linkEnhance.Server = linkEnhance.createServer(name); 435 server.on('serverStopped', (reason: number): void => { 436 hilog.info(0x0000, TAG, 'serverStopped, reason= ' + reason); 437 }); 438 // 取消订阅服务停止 439 server.off('serverStopped', (reason: number): void => { 440 hilog.info(0x0000, TAG, 'serverStopped, reason= ' + reason); 441 }); 442} catch (err) { 443 hilog.info(0x0000, TAG, 'start sever errCode: ' + (err as BusinessError).code + ', errMessage: ' + 444 (err as BusinessError).message); 445} 446``` 447## ConnectResult 448 449客户端调用connect()后,返回的连接结果。 450 451**系统能力**:SystemCapability.DistributedSched.AppCollaboration 452 453| 名称 | 类型 |只读 | 可选 | 说明 | 454| ----------------- | ------ | ---- | ---- | ------------------ | 455| deviceId | string | 否 |否 | 对端设备ID,成功返回对端设备的deviceId,失败返回空字符串。 | 456| success | boolean | 否 |否 | 连接结果,true表示连接成功,false表示连接失败。 | 457| reason | number | 否 |否 | 连接成功返回0,连接失败返回错误码:<br>- 32390200:表示客户端连接超时。<br>- 32390201:表示服务端服务未启动。<br>- 32390300:表示内部错误。<br>更多关于错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 | 458 459## Connection 460 461连接对象,提供连接、断连、获取对端设备ID、发送数据、注册/取消注册回调等方法。 462 463### connect() 464 465connect(): void 466 467在客户端执行,向服务端设备发起连接,最大连接个数限制为10。 468 469**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 470 471**系统能力**:SystemCapability.DistributedSched.AppCollaboration 472 473 474**错误码:** 475 476以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 477 478| 错误码ID | 错误信息 | 479| ------- | -------------------------------- | 480| 201 | Permission denied.| 481| 32390204 | The number of connection exceeds the limit. | 482| 32390300 | Internal error. | 483 484**示例:** 485 486客户端设备上的应用在创建Connection对象成功后,调用connect()方法连接目标设备(即服务端)。 487 488```ts 489import { linkEnhance } from '@kit.DistributedServiceKit'; 490import { BusinessError } from '@kit.BasicServicesKit'; 491import { hilog } from '@kit.PerformanceAnalysisKit'; 492const TAG = "testDemo"; 493 494try { 495 let peerDeviceId: string = "00:11:22:33:44:55"; 496 hilog.info(0x0000, TAG, 'connection sever deviceId = ' + peerDeviceId); 497 let connection: linkEnhance.Connection = linkEnhance.createConnection(peerDeviceId, "demo"); 498 // 订阅连接结果 499 connection.on('connectResult', (result: linkEnhance.ConnectResult): void => { 500 hilog.info(0x0000, TAG, 'clientConnectResultCallback result = ' + result.success); 501 }); 502 // 发起连接 503 connection.connect(); 504} catch (err) { 505 hilog.error(0x0000, TAG, 'errCode: ' + (err as BusinessError).code + ', errMessage: ' + 506 (err as BusinessError).message); 507} 508``` 509 510### disconnect() 511 512disconnect(): void 513 514业务执行完毕后,双端任意设备可调用该接口断开连接。创建的connection对象仍有效,需要时可调用connect()重新连接。 515 516**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 517 518**系统能力**:SystemCapability.DistributedSched.AppCollaboration 519 520 521**错误码:** 522 523以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 524 525| 错误码ID | 错误信息 | 526| ------- | -------------------------------- | 527| 201 | Permission denied.| 528 529**示例:** 530 531```ts 532import { linkEnhance } from '@kit.DistributedServiceKit'; 533import { BusinessError } from '@kit.BasicServicesKit'; 534import { hilog } from '@kit.PerformanceAnalysisKit'; 535const TAG = "testDemo"; 536 537try { 538 let peerDeviceId: string = "00:11:22:33:44:55"; 539 hilog.info(0x0000, TAG, 'connection sever deviceId = ' + peerDeviceId); 540 let connection: linkEnhance.Connection = linkEnhance.createConnection(peerDeviceId, "demo"); 541 connection.on('connectResult', (result: linkEnhance.ConnectResult): void => { 542 hilog.info(0x0000, TAG, 'clientConnectResultCallback result = ' + result.success); 543 if (result.success) { 544 connection.disconnect(); 545 } 546 }); 547 connection.connect(); 548} catch (err) { 549 hilog.error(0x0000, TAG, 'errCode: ' + (err as BusinessError).code + ', errMessage: ' + 550 (err as BusinessError).message); 551} 552``` 553 554### close() 555 556close(): void 557 558业务执行完毕后,任意设备可调用该接口销毁connection对象,释放资源。若需再次与对端设备交互,必须重新创建connection对象并调用`connect()`发起连接。 559 560**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 561 562**系统能力**:SystemCapability.DistributedSched.AppCollaboration 563 564**错误码:** 565 566以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 567 568| 错误码ID | 错误信息 | 569| ------- | -------------------------------- | 570| 201 | Permission denied.| 571 572 573**示例:** 574 575```ts 576import { linkEnhance } from '@kit.DistributedServiceKit'; 577import { BusinessError } from '@kit.BasicServicesKit'; 578import { hilog } from '@kit.PerformanceAnalysisKit'; 579const TAG = "testDemo"; 580 581try { 582 let peerDeviceId: string = "00:11:22:33:44:55"; 583 hilog.info(0x0000, TAG, 'connection sever deviceId = ' + peerDeviceId); 584 let connection: linkEnhance.Connection = linkEnhance.createConnection(peerDeviceId, "demo"); 585 connection.on('connectResult', (result: linkEnhance.ConnectResult): void => { 586 hilog.info(0x0000, TAG, 'clientConnectResultCallback result = ' + result.success); 587 if (result.success) { 588 connection.close(); 589 } 590 }); 591 connection.connect(); 592} catch (err) { 593 hilog.error(0x0000, TAG, 'errCode: ' + (err as BusinessError).code + ', errMessage: ' + 594 (err as BusinessError).message); 595} 596``` 597### getPeerDeviceId() 598 599getPeerDeviceId(): string 600 601获取对端设备的deviceId,作为对端设备的标识符,连接成功后或者被连接成功后调用。 602 603**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 604 605**系统能力**:SystemCapability.DistributedSched.AppCollaboration 606 607 608**返回值:** 609 610| 类型 | 说明 | 611| ------------------- | ---------------- | 612| string | 对端设备的deviceId,即对端设备的BLE MAC地址。如果获取失败返回空字符串。 | 613 614 615**错误码:** 616 617以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 618 619| 错误码ID | 错误信息 | 620| ------- | -------------------------------- | 621| 201 | Permission denied.| 622 623**示例:** 624 625```ts 626import { linkEnhance } from '@kit.DistributedServiceKit'; 627import { BusinessError } from '@kit.BasicServicesKit'; 628import { hilog } from '@kit.PerformanceAnalysisKit'; 629const TAG = "testDemo"; 630 631try { 632 let peerDeviceId: string = "00:11:22:33:44:55"; 633 hilog.info(0x0000, TAG, 'connection sever deviceId = ' + peerDeviceId); 634 let connection: linkEnhance.Connection = linkEnhance.createConnection(peerDeviceId, "demo"); 635 connection.getPeerDeviceId(); 636 hilog.info(0x0000, TAG, "peerDeviceId=%{public}s" + connection.getPeerDeviceId()); 637} catch (err) { 638 hilog.error(0x0000, TAG, 'errCode: ' + (err as BusinessError).code + ', errMessage: ' + 639 (err as BusinessError).message); 640} 641``` 642 643### sendData() 644 645sendData(data: ArrayBuffer): void 646 647客户端连接成功后,可以向服务端发送数据。服务端接收到连接回调时,也可以向客户端发送数据。 648 649**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 650 651**系统能力**:SystemCapability.DistributedSched.AppCollaboration 652 653**参数:** 654 655| 参数名 | 类型 | 必填 | 说明 | 656| --------- | --------------------------------------- | ---- | ----- | 657| data | [ArrayBuffer](../../arkts-utils/arraybuffer-object.md) | 是 | 需要发送的数据,最大发送长度为1024字节。| 658 659**错误码:** 660 661以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 662 663| 错误码ID | 错误信息 | 664| ------- | -------------------------------- | 665| 201 | Permission denied.| 666| 32390205 | Connection is not ready. | 667| 32390206 | Invalid parameter. | 668| 32390300 | Internal error. | 669 670**示例:** 671 672```ts 673import { linkEnhance } from '@kit.DistributedServiceKit'; 674import { BusinessError } from '@kit.BasicServicesKit'; 675import { hilog } from '@kit.PerformanceAnalysisKit'; 676const TAG = "testDemo"; 677 678try { 679 let peerDeviceId: string = "00:11:22:33:44:55"; 680 hilog.info(0x0000, TAG, 'connection sever deviceId = ' + peerDeviceId); 681 let connection: linkEnhance.Connection = linkEnhance.createConnection(peerDeviceId, "demo"); 682 connection.on('connectResult', (result: linkEnhance.ConnectResult): void => { 683 hilog.info(0x0000, TAG, 'clientConnectResultCallback result = ' + result.success); 684 if (result.success) { 685 let len = 1; 686 let arraybuffer = new ArrayBuffer(len); // 创建需要发送的数据 687 connection.sendData(arraybuffer); 688 hilog.info(0x0000, TAG, "sendData data connection peerDeviceId=%{public}s" + connection.getPeerDeviceId()); 689 connection.disconnect(); 690 } 691 }); 692 connection.connect(); 693} catch (err) { 694 hilog.error(0x0000, TAG, 'errCode: ' + (err as BusinessError).code + ', errMessage: ' + 695 (err as BusinessError).message); 696} 697``` 698 699### on('connectResult') 700 701on(type: 'connectResult', callback: Callback<ConnectResult>): void 702 703注册connect事件的回调监听,通过回调函数获取连接结果。使用callback进行异步回调。 704 705**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 706 707**系统能力**:SystemCapability.DistributedSched.AppCollaboration 708 709**参数:** 710 711| 参数名 | 类型 | 必填 | 说明 | 712| --------- | ------------------------------------- | ---- | ----- | 713| type | string | 是 | 事件回调类型,支持的事件为'connectResult',完成`connect()`调用,触发该事件。 | 714| callback | Callback<[ConnectResult](#connectresult)> | 是 | 注册的回调函数。 | 715 716**错误码:** 717 718以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 719 720| 错误码ID | 错误信息 | 721| ------- | -------------------------------- | 722| 201 | Permission denied.| 723| 32390206 | Invalid parameter.| 724 725**示例:** 726 727```ts 728import { linkEnhance } from '@kit.DistributedServiceKit'; 729import { BusinessError } from '@kit.BasicServicesKit'; 730import { hilog } from '@kit.PerformanceAnalysisKit'; 731const TAG = "testDemo"; 732 733try { 734 let peerDeviceId: string = "00:11:22:33:44:55"; 735 hilog.info(0x0000, TAG, 'connection sever deviceId = ' + peerDeviceId); 736 let connection: linkEnhance.Connection = linkEnhance.createConnection(peerDeviceId, "demo"); 737 // 订阅连接结果 738 connection.on('connectResult', (result: linkEnhance.ConnectResult): void => { 739 hilog.info(0x0000, TAG, 'clientConnectResultCallback result = ' + result.success); 740 }); 741 742 // 发起连接 743 connection.connect(); 744} catch (err) { 745 hilog.error(0x0000, TAG, 'errCode: ' + (err as BusinessError).code + ', errMessage: ' + 746 (err as BusinessError).message); 747} 748``` 749 750### off('connectResult') 751 752off(type: 'connectResult', callback?: Callback<ConnectResult>): void 753 754取消connect事件的回调监听,使用callback异步回调。 755 756**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 757 758**系统能力**:SystemCapability.DistributedSched.AppCollaboration 759 760**参数:** 761 762| 参数名 | 类型 | 必填 | 说明 | 763| --------- | ------------------------------------- | ---- | ----- | 764| type | string | 是 | 事件回调类型,支持的事件为'connectResult',完成`connect()`调用,触发该事件。 | 765| callback | Callback<[ConnectResult](#connectresult)> | 否 | 注册的回调函数。 | 766 767**错误码:** 768 769以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 770 771| 错误码ID | 错误信息 | 772| ------- | -------------------------------- | 773| 201 | Permission denied.| 774| 32390206 | Invalid parameter. | 775 776**示例:** 777 778```ts 779import { linkEnhance } from '@kit.DistributedServiceKit'; 780import { BusinessError } from '@kit.BasicServicesKit'; 781import { hilog } from '@kit.PerformanceAnalysisKit'; 782const TAG = "testDemo"; 783 784try { 785 let peerDeviceId: string = "00:11:22:33:44:55"; 786 hilog.info(0x0000, TAG, 'connection sever deviceId = ' + peerDeviceId); 787 let connection: linkEnhance.Connection = linkEnhance.createConnection(peerDeviceId, "demo"); 788 connection.on('connectResult', (result: linkEnhance.ConnectResult): void => { 789 hilog.info(0x0000, TAG, 'clientConnectResultCallback result = ' + result.success); 790 }); 791 // 取消订阅连接结果 792 connection.off('connectResult', (result: linkEnhance.ConnectResult): void => { 793 hilog.info(0x0000, TAG, 'clientConnectResultCallback result = ' + result.success); 794 }); 795} catch (err) { 796 hilog.error(0x0000, TAG, 'errCode: ' + (err as BusinessError).code + ', errMessage: ' + 797 (err as BusinessError).message); 798} 799``` 800 801### on('disconnected') 802 803on(type: 'disconnected', callback: Callback<number>): void 804 805注册disconnected事件的回调监听,连接被动断开或者底层异常断开时触发该事件。使用callback异步回调。 806 807**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 808 809**系统能力**:SystemCapability.DistributedSched.AppCollaboration 810 811**参数:** 812 813| 参数名 | 类型 | 必填 | 说明 | 814| --------- | ------------------------------------- | ---- | ----- | 815| type | string | 是 | 事件回调类型,支持的事件为'disconnected',连接被动断开或底层异常断开时,触发该事件。 | 816| callback | Callback<number> | 是 | 注册的回调函数,number为返回的错误码。 | 817 818**错误码:** 819 820以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 821 822| 错误码ID | 错误信息 | 823| ------- | -------------------------------- | 824| 201 | Permission denied.| 825| 32390206 | Invalid parameter.| 826 827**示例:** 828 829```ts 830import { linkEnhance } from '@kit.DistributedServiceKit'; 831import { BusinessError } from '@kit.BasicServicesKit'; 832import { hilog } from '@kit.PerformanceAnalysisKit'; 833const TAG = "testDemo"; 834 835try { 836 let peerDeviceId: string = "00:11:22:33:44:55"; 837 hilog.info(0x0000, TAG, 'connection sever deviceId = ' + peerDeviceId); 838 let connection: linkEnhance.Connection = linkEnhance.createConnection(peerDeviceId, "demo"); 839 // 订阅断连通知 840 connection.on('disconnected', (number: number)=> { 841 hilog.info(0x0000, TAG, 'connection disconnected reason = ' + number); 842 }); 843} catch (err) { 844 hilog.info(0x0000, TAG, 'errCode: ' + (err as BusinessError).code + ', errMessage: ' + 845 (err as BusinessError).message); 846} 847``` 848 849### off('disconnected') 850 851off(type: 'disconnected', callback?: Callback<number>): void 852 853取消注册disconnected事件的回调监听。连接被动断开或底层异常断开时触发该事件,使用callback异步回调。 854 855**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 856 857**系统能力**:SystemCapability.DistributedSched.AppCollaboration 858 859**参数:** 860 861| 参数名 | 类型 | 必填 | 说明 | 862| --------- | ------------------------------------- | ---- | ----- | 863| type | string | 是 | 事件回调类型,支持的事件为'disconnected',连接被动断开或底层异常断开时,触发该事件。 | 864| callback | Callback<number> | 否 | 注册的回调函数。number为返回的错误码。 | 865 866**错误码:** 867 868以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 869 870| 错误码ID | 错误信息 | 871| ------- | -------------------------------- | 872| 201 | Permission denied.| 873| 32390206 | Invalid parameter. | 874 875**示例:** 876 877```ts 878import { linkEnhance } from '@kit.DistributedServiceKit'; 879import { BusinessError } from '@kit.BasicServicesKit'; 880import { hilog } from '@kit.PerformanceAnalysisKit'; 881const TAG = "testDemo"; 882 883try { 884 let peerDeviceId: string = "00:11:22:33:44:55"; 885 hilog.info(0x0000, TAG, 'connection sever deviceId = ' + peerDeviceId); 886 let connection: linkEnhance.Connection = linkEnhance.createConnection(peerDeviceId, "demo"); 887 connection.on('disconnected', (number: number)=> { 888 hilog.info(0x0000, TAG, 'connection disconnected reason = ' + number); 889 }); 890 // 取消订阅断连通知 891 connection.off('disconnected', (number: number)=> { 892 hilog.info(0x0000, TAG, 'connection disconnected reason = ' + number); 893 }); 894} catch (err) { 895 hilog.error(0x0000, TAG, 'errCode: ' + (err as BusinessError).code + ', errMessage: ' + 896 (err as BusinessError).message); 897} 898``` 899 900### on('dataReceived') 901 902on(type: 'dataReceived', callback: Callback<ArrayBuffer>): void 903 904注册dataReceived事件的回调监听。使用callback异步回调。 905 906**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 907 908**系统能力**:SystemCapability.DistributedSched.AppCollaboration 909 910**参数:** 911 912| 参数名 | 类型 | 必填 | 说明 | 913| --------- | ------------------------------------- | ---- | ----- | 914| type | string | 是 | 事件回调类型,支持的事件为'dataReceived',收到数据时,触发该事件。 | 915| callback | Callback<[ArrayBuffer](../../arkts-utils/arraybuffer-object.md)> | 是 | 注册的回调函数。 | 916 917**错误码:** 918 919以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 920 921| 错误码ID | 错误信息 | 922| ------- | -------------------------------- | 923| 201 | Permission denied.| 924| 32390206 | Invalid parameter. | 925 926**示例:** 927 928```ts 929import { linkEnhance } from '@kit.DistributedServiceKit'; 930import { BusinessError } from '@kit.BasicServicesKit'; 931import { hilog } from '@kit.PerformanceAnalysisKit'; 932const TAG = "testDemo"; 933 934try { 935 let peerDeviceId: string = "00:11:22:33:44:55"; 936 hilog.info(0x0000, TAG, 'connection sever deviceId = ' + peerDeviceId); 937 let connection: linkEnhance.Connection = linkEnhance.createConnection(peerDeviceId, "demo"); 938 connection.connect(); 939 connection.on('dataReceived', (data: ArrayBuffer)=> { 940 hilog.info(0x0000, TAG, 'recv dataLen = ' + data.byteLength); 941 }); 942} catch (err) { 943 hilog.error(0x0000, TAG, 'errCode: ' + (err as BusinessError).code + ', errMessage: ' + 944 (err as BusinessError).message); 945} 946``` 947### off('dataReceived') 948 949off(type: 'dataReceived', callback?: Callback<ArrayBuffer>): void 950 951取消dataReceived事件的回调监听,使用callback异步回调。 952 953**需要权限**:ohos.permission.DISTRIBUTED_DATASYNC 954 955**系统能力**:SystemCapability.DistributedSched.AppCollaboration 956 957**参数:** 958 959| 参数名 | 类型 | 必填 | 说明 | 960| --------- | ------------------------------------- | ---- | ----- | 961| type | string | 是 | 事件回调类型,支持的事件为'dataReceived',收到数据时,触发该事件。 | 962| callback | Callback<[ArrayBuffer](../../arkts-utils/arraybuffer-object.md)> | 否 | 注册的回调函数。 | 963 964**错误码:** 965 966以下错误码的详细介绍请参考[增强连接错误码](errorcode-link-enhance.md)。 967 968| 错误码ID | 错误信息 | 969| ------- | -------------------------------- | 970| 201 | Permission denied.| 971| 32390206 | Invalid parameter. | 972 973**示例:** 974 975```ts 976import { linkEnhance } from '@kit.DistributedServiceKit'; 977import { BusinessError } from '@kit.BasicServicesKit'; 978import { hilog } from '@kit.PerformanceAnalysisKit'; 979const TAG = "testDemo"; 980 981try { 982 let peerDeviceId: string = "00:11:22:33:44:55"; 983 hilog.info(0x0000, TAG, 'connection sever deviceId = ' + peerDeviceId); 984 let connection: linkEnhance.Connection = linkEnhance.createConnection(peerDeviceId, "demo"); 985 connection.on('dataReceived', (data: ArrayBuffer)=> { 986 hilog.info(0x0000, TAG, 'recv dataLen = ' + data.byteLength); 987 }); 988 connection.off('dataReceived', (data: ArrayBuffer)=> { 989 hilog.info(0x0000, TAG, 'recv dataLen = ' + data.byteLength); 990 }); 991} catch (err) { 992 hilog.error(0x0000, TAG, 'errCode: ' + (err as BusinessError).code + ', errMessage: ' + 993 (err as BusinessError).message); 994} 995```