1# @ohos.net.connection (网络连接管理) 2 3网络连接管理提供管理网络一些基础能力,包括获取默认激活的数据网络、获取所有激活数据网络列表、开启关闭飞行模式、获取网络能力信息等功能。 4 5> **说明:** 6> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 7 8## 导入模块 9 10```js 11import connection from '@ohos.net.connection' 12``` 13 14## connection.createNetConnection 15 16createNetConnection(netSpecifier?: NetSpecifier, timeout?: number): NetConnection 17 18返回一个NetConnection对象,netSpecifier指定关注的网络的各项特征;timeout是超时时间(单位是毫秒);netSpecifier是timeout的必要条件,两者都没有则表示关注默认网络。 19 20**系统能力**:SystemCapability.Communication.NetManager.Core 21 22**参数:** 23 24| 参数名 | 类型 | 必填 | 说明 | 25| ------------ | ----------------------------- | ---- | ------------------------------------------------------------ | 26| netSpecifier | [NetSpecifier](#netspecifier) | 否 | 指定网络的各项特征,不指定或为undefined时关注默认网络。 | 27| timeout | number | 否 | 获取netSpecifier指定的网络时的超时时间,仅netSpecifier存在时生效,undefined时默认值为0。 | 28 29**返回值:** 30 31| 类型 | 说明 | 32| ------------------------------- | -------------------- | 33| [NetConnection](#netconnection) | 所关注的网络的句柄。 | 34 35**示例:** 36 37```js 38// 关注默认网络, 不需要传参 39let netConnection = connection.createNetConnection() 40 41// 关注蜂窝网络,需要传入相关网络特征,timeout参数未传入说明未使用超时时间,此时timeout为0 42let netConnectionCellular = connection.createNetConnection({ 43 netCapabilities: { 44 bearerTypes: [connection.NetBearType.BEARER_CELLULAR] 45 } 46}) 47``` 48 49## connection.getDefaultNet 50 51getDefaultNet(callback: AsyncCallback\<NetHandle>): void 52 53获取默认激活的数据网络,使用callback方式作为异步方法。可以使用[getNetCapabilities](#connectiongetnetcapabilities)去获取网络的类型、拥有的能力等信息。 54 55**需要权限**:ohos.permission.GET_NETWORK_INFO 56 57**系统能力**:SystemCapability.Communication.NetManager.Core 58 59**参数:** 60 61| 参数名 | 类型 | 必填 | 说明 | 62| -------- | --------------------------------------- | ---- | ---------- | 63| callback | AsyncCallback\<[NetHandle](#nethandle)> | 是 | 回调函数。当成功获取默认激活的数据网络时,err为undefined,data为默认激活的数据网络;否则为错误对象 | 64 65**错误码:** 66 67| 错误码ID | 错误信息 | 68| ------- | ----------------------------- | 69| 201 | Permission denied. | 70| 2100002 | Operation failed. Cannot connect to service.| 71| 2100003 | System internal error. | 72 73**示例:** 74 75```js 76connection.getDefaultNet(function (error, data) { 77 console.log(JSON.stringify(error)) 78 console.log(JSON.stringify(data)) 79}) 80``` 81 82## connection.getDefaultNet 83 84getDefaultNet(): Promise\<NetHandle> 85 86获取默认激活的数据网络,使用Promise方式作为异步方法。可以使用[getNetCapabilities](#connectiongetnetcapabilities)去获取网络的类型、拥有的能力等信息。 87 88**需要权限**:ohos.permission.GET_NETWORK_INFO 89 90**系统能力**:SystemCapability.Communication.NetManager.Core 91 92**返回值:** 93 94| 类型 | 说明 | 95| --------------------------------- | ------------------------------------- | 96| Promise\<[NetHandle](#nethandle)> | 以Promise形式返回默认激活的数据网络。 | 97 98**错误码:** 99 100| 错误码ID | 错误信息 | 101| ------- | ----------------------------- | 102| 201 | Permission denied. | 103| 2100002 | Operation failed. Cannot connect to service.| 104| 2100003 | System internal error. | 105 106**示例:** 107 108```js 109connection.getDefaultNet().then(function (data) { 110 console.log(JSON.stringify(data)) 111}) 112``` 113 114## connection.getDefaultNetSync<sup>9+</sup> 115 116getDefaultNetSync(): NetHandle 117 118使用同步方法获取默认激活的数据网络。可以使用[getNetCapabilities](#connectiongetnetcapabilities)去获取网络的类型、拥有的能力等信息。 119 120**需要权限**:ohos.permission.GET_NETWORK_INFO 121 122**系统能力**:SystemCapability.Communication.NetManager.Core 123 124**返回值:** 125 126| 类型 | 说明 | 127| --------- | ---------------------------------- | 128| NetHandle | 以同步方式返回默认激活的数据网络。 | 129 130**错误码:** 131 132| 错误码ID | 错误信息 | 133| ------- | ----------------------------- | 134| 201 | Permission denied. | 135| 2100002 | Operation failed. Cannot connect to service.| 136| 2100003 | System internal error. | 137 138**示例:** 139 140```js 141let netHandle = connection.getDefaultNetSync(); 142``` 143 144## connection.getAppNet<sup>9+</sup> 145 146getAppNet(callback: AsyncCallback\<NetHandle>): void 147 148获取App绑定的网络信息,使用callback方式作为异步方法。 149 150**系统能力**:SystemCapability.Communication.NetManager.Core 151 152**参数:** 153 154| 参数名 | 类型 | 必填 | 说明 | 155| --------- | ------------------------------------------------------------ | ---- | ---------------- | 156| callback | AsyncCallback\<[NetHandle](#nethandle)> | 是 | 回调函数。当成功获取App绑定的网络信息时,err为undefined,data为获取到App绑定的网络信息;否则为错误对象| 157 158**错误码:** 159 160| 错误码ID | 错误信息 | 161| ------- | ----------------------------- | 162| 2100002 | Operation failed. Cannot connect to service.| 163| 2100003 | System internal error. | 164 165**示例:** 166 167```js 168connection.getAppNet(function (error, data) { 169 console.log(JSON.stringify(error)) 170 console.log(JSON.stringify(data)) 171}) 172``` 173 174## connection.getAppNet<sup>9+</sup> 175 176getAppNet(): Promise\<NetHandle>; 177 178获取App绑定的网络信息,使用Promise方式作为异步方法。 179 180**系统能力**:SystemCapability.Communication.NetManager.Core 181 182**返回值:** 183 184| 类型 | 说明 | 185| --------------------------------- | ------------------------------------- | 186| Promise\<[NetHandle](#nethandle)> | 以Promise形式返回App绑定的网络信息。 | 187 188**错误码:** 189 190| 错误码ID | 错误信息 | 191| ------- | ----------------------------- | 192| 2100002 | Operation failed. Cannot connect to service.| 193| 2100003 | System internal error. | 194 195**示例:** 196 197```js 198connection.getAppNet().then((data) => { 199 console.info(JSON.stringify(data)); 200}).catch(error => { 201 console.info(JSON.stringify(error)); 202}) 203``` 204 205## connection.SetAppNet<sup>9+</sup> 206 207setAppNet(netHandle: NetHandle, callback: AsyncCallback\<void>): void 208 209绑定App到指定网络,绑定后的App只能通过指定网络访问外网,使用callback方式作为异步方法。 210 211**需要权限**:ohos.permission.INTERNET 212 213**系统能力**:SystemCapability.Communication.NetManager.Core 214 215**参数:** 216 217| 参数名 | 类型 | 必填 | 说明 | 218| --------- | ------------------------------------------------------------ | ---- | ---------------- | 219| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 220| callback | AsyncCallback\<void> | 是 | 回调函数。当成功绑定App到指定网络时,err为undefined,否则为错误对象| 221 222**错误码:** 223 224| 错误码ID | 错误信息 | 225| ------- | ----------------------------- | 226| 201 | Permission denied. | 227| 401 | Parameter error. | 228| 2100001 | Invalid parameter value. | 229| 2100002 | Operation failed. Cannot connect to service.| 230| 2100003 | System internal error. | 231 232**示例:** 233 234```js 235connection.getDefaultNet(function (error, netHandle) { 236 connection.setAppNet(netHandle, (error, data) => { 237 console.log(JSON.stringify(error)) 238 console.log(JSON.stringify(data)) 239 }); 240}) 241``` 242 243## connection.SetAppNet<sup>9+</sup> 244 245setAppNet(netHandle: NetHandle): Promise\<void>; 246 247绑定App到指定网络,绑定后的App只能通过指定网络访问外网,使用Promise方式作为异步方法。 248 249**需要权限**:ohos.permission.INTERNET 250 251**系统能力**:SystemCapability.Communication.NetManager.Core 252 253**参数:** 254 255| 参数名 | 类型 | 必填 | 说明 | 256| --------- | ------------------------------------------------------------ | ---- | ---------------- | 257| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 258 259**返回值:** 260 261| 类型 | 说明 | 262| ------------------------------------------- | ----------------------------- | 263| Promise\<void> | 无返回值的Promise对象。 | 264 265**错误码:** 266 267| 错误码ID | 错误信息 | 268| ------- | ----------------------------- | 269| 201 | Permission denied. | 270| 401 | Parameter error. | 271| 2100001 | Invalid parameter value. | 272| 2100002 | Operation failed. Cannot connect to service.| 273| 2100003 | System internal error. | 274 275**示例:** 276 277```js 278connection.getDefaultNet().then(function (netHandle) { 279 connection.setAppNet(netHandle).then(() => { 280 console.log("success") 281 }).catch(error => { 282 console.log(JSON.stringify(error)) 283 }) 284}) 285``` 286 287## connection.getAllNets 288 289getAllNets(callback: AsyncCallback<Array<NetHandle>>): void 290 291获取所有处于连接状态的网络列表,使用callback方式作为异步方法。 292 293**需要权限**:ohos.permission.GET_NETWORK_INFO 294 295**系统能力**:SystemCapability.Communication.NetManager.Core 296 297**参数:** 298 299| 参数名 | 类型 | 必填 | 说明 | 300| -------- | -------- | -------- | -------- | 301| callback | AsyncCallback<Array<[NetHandle](#nethandle)>> | 是 | 回调函数。当成功获取所有处于连接状态的网络列表时,err为undefined,data为激活的数据网络列表;否则为错误对象 | 302 303**错误码:** 304 305| 错误码ID | 错误信息 | 306| ------- | ----------------------------- | 307| 201 | Permission denied. | 308| 2100002 | Operation failed. Cannot connect to service.| 309| 2100003 | System internal error. | 310 311**示例:** 312 313```js 314connection.getAllNets(function (error, data) { 315 console.log(JSON.stringify(error)) 316 console.log(JSON.stringify(data)) 317}); 318``` 319 320## connection.getAllNets 321 322getAllNets(): Promise<Array<NetHandle>> 323 324获取所有处于连接状态的网络列表,使用Promise方式作为异步方法。 325 326**需要权限**:ohos.permission.GET_NETWORK_INFO 327 328**系统能力**:SystemCapability.Communication.NetManager.Core 329 330**返回值:** 331 332| 类型 | 说明 | 333| -------- | -------- | 334| Promise<Array<[NetHandle](#nethandle)>> | 以Promise形式返回激活的数据网络列表。 | 335 336**错误码:** 337 338| 错误码ID | 错误信息 | 339| ------- | ----------------------------- | 340| 201 | Permission denied. | 341| 2100002 | Operation failed. Cannot connect to service.| 342| 2100003 | System internal error. | 343 344**示例:** 345 346```js 347connection.getAllNets().then(function (data) { 348 console.log(JSON.stringify(data)) 349}); 350``` 351 352## connection.getConnectionProperties 353 354getConnectionProperties(netHandle: NetHandle, callback: AsyncCallback\<ConnectionProperties>): void 355 356获取netHandle对应的网络的连接信息,使用callback方式作为异步方法。 357 358**需要权限**:ohos.permission.GET_NETWORK_INFO 359 360**系统能力**:SystemCapability.Communication.NetManager.Core 361 362**参数:** 363 364| 参数名 | 类型 | 必填 | 说明 | 365| --------- | ------------------------------------------------------------ | ---- | ---------------- | 366| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 367| callback | AsyncCallback\<[ConnectionProperties](#connectionproperties)> | 是 | 回调函数。当成功获取netHandle对应的网络的连接信息时,err为undefined,data为获取的网络连接信息;否则为错误对象| 368 369**错误码:** 370 371| 错误码ID | 错误信息 | 372| ------- | ----------------------------- | 373| 201 | Permission denied. | 374| 401 | Parameter error. | 375| 2100001 | Invalid parameter value. | 376| 2100002 | Operation failed. Cannot connect to service.| 377| 2100003 | System internal error. | 378 379**示例:** 380 381```js 382connection.getDefaultNet().then(function (netHandle) { 383 connection.getConnectionProperties(netHandle, function (error, data) { 384 console.log(JSON.stringify(error)) 385 console.log(JSON.stringify(data)) 386 }) 387}) 388``` 389 390## connection.getConnectionProperties 391 392getConnectionProperties(netHandle: NetHandle): Promise\<ConnectionProperties> 393 394获取netHandle对应的网络的连接信息,使用Promise方式作为异步方法。 395 396**需要权限**:ohos.permission.GET_NETWORK_INFO 397 398**系统能力**:SystemCapability.Communication.NetManager.Core 399 400**参数:** 401 402| 参数名 | 类型 | 必填 | 说明 | 403| --------- | ----------------------- | ---- | ---------------- | 404| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 405 406**返回值:** 407 408| 类型 | 说明 | 409| ------------------------------------------------------- | --------------------------------- | 410| Promise\<[ConnectionProperties](#connectionproperties)> | 以Promise形式返回网络的连接信息。 | 411 412**错误码:** 413 414| 错误码ID | 错误信息 | 415| ------- | ----------------------------- | 416| 201 | Permission denied. | 417| 401 | Parameter error. | 418| 2100001 | Invalid parameter value. | 419| 2100002 | Operation failed. Cannot connect to service.| 420| 2100003 | System internal error. | 421 422**示例:** 423 424```js 425connection.getDefaultNet().then(function (netHandle) { 426 connection.getConnectionProperties(netHandle).then(function (data) { 427 console.log(JSON.stringify(data)) 428 }) 429}) 430``` 431 432## connection.getNetCapabilities 433 434getNetCapabilities(netHandle: NetHandle, callback: AsyncCallback\<NetCapabilities>): void 435 436获取netHandle对应的网络的能力信息,使用callback方式作为异步方法。 437 438**需要权限**:ohos.permission.GET_NETWORK_INFO 439 440**系统能力**:SystemCapability.Communication.NetManager.Core 441 442**参数:** 443 444| 参数名 | 类型 | 必填 | 说明 | 445| --------- | --------------------------------------------------- | ---- | ---------------- | 446| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 447| callback | AsyncCallback\<[NetCapabilities](#netcapabilities)> | 是 | 回调函数。当成功获取netHandle对应的网络的能力信息时,err为undefined,data为获取到的网络能力信息;否则为错误对象 | 448 449**错误码:** 450 451| 错误码ID | 错误信息 | 452| ------- | ----------------------------- | 453| 201 | Permission denied. | 454| 401 | Parameter error. | 455| 2100001 | Invalid parameter value. | 456| 2100002 | Operation failed. Cannot connect to service.| 457| 2100003 | System internal error. | 458 459**示例:** 460 461```js 462connection.getDefaultNet().then(function (netHandle) { 463 connection.getNetCapabilities(netHandle, function (error, data) { 464 console.log(JSON.stringify(error)) 465 console.log(JSON.stringify(data)) 466 }) 467}) 468``` 469 470## connection.getNetCapabilities 471 472getNetCapabilities(netHandle: NetHandle): Promise\<NetCapabilities> 473 474获取netHandle对应的网络的能力信息,使用Promise方式作为异步方法。 475 476**需要权限**:ohos.permission.GET_NETWORK_INFO 477 478**系统能力**:SystemCapability.Communication.NetManager.Core 479 480**参数:** 481 482| 参数名 | 类型 | 必填 | 说明 | 483| --------- | ----------------------- | ---- | ---------------- | 484| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 485 486**返回值:** 487 488| 类型 | 说明 | 489| --------------------------------------------- | --------------------------------- | 490| Promise\<[NetCapabilities](#netcapabilities)> | 以Promise形式返回网络的能力信息。 | 491 492**错误码:** 493 494| 错误码ID | 错误信息 | 495| ------- | ----------------------------- | 496| 201 | Permission denied. | 497| 401 | Parameter error. | 498| 2100001 | Invalid parameter value. | 499| 2100002 | Operation failed. Cannot connect to service.| 500| 2100003 | System internal error. | 501 502**示例:** 503 504```js 505connection.getDefaultNet().then(function (netHandle) { 506 connection.getNetCapabilities(netHandle).then(function (data) { 507 console.log(JSON.stringify(data)) 508 }) 509}) 510``` 511 512## connection.isDefaultNetMetered<sup>9+</sup> 513 514isDefaultNetMetered(callback: AsyncCallback\<boolean>): void 515 516检查当前网络上的数据流量使用是否被计量,使用callback方式作为异步方法。 517 518**需要权限**:ohos.permission.GET_NETWORK_INFO 519 520**系统能力**:SystemCapability.Communication.NetManager.Core 521 522**参数:** 523 524| 参数名 | 类型 | 必填 | 说明 | 525| -------- | ----------------------- | ---- | -------------------------------------- | 526| callback | AsyncCallback\<boolean> | 是 | 回调函数。当前网络上的数据流量使用被计量返回true。 | 527 528**错误码:** 529 530| 错误码ID | 错误信息 | 531| ------- | ----------------------------- | 532| 201 | Permission denied. | 533| 2100002 | Operation failed. Cannot connect to service.| 534| 2100003 | System internal error. | 535 536**示例:** 537 538```js 539connection.isDefaultNetMetered(function (error, data) { 540 console.log(JSON.stringify(error)) 541 console.log('data: ' + data) 542}) 543``` 544 545## connection.isDefaultNetMetered<sup>9+</sup> 546 547isDefaultNetMetered(): Promise\<boolean> 548 549检查当前网络上的数据流量使用是否被计量,使用Promise方式作为异步方法。 550 551**需要权限**:ohos.permission.GET_NETWORK_INFO 552 553**系统能力**:SystemCapability.Communication.NetManager.Core 554 555**返回值:** 556 557| 类型 | 说明 | 558| ----------------- | ----------------------------------------------- | 559| Promise\<boolean> | 以Promise形式返回,当前网络上的数据流量使用被计量true。 | 560 561**错误码:** 562 563| 错误码ID | 错误信息 | 564| ------- | ----------------------------- | 565| 201 | Permission denied. | 566| 2100002 | Operation failed. Cannot connect to service.| 567| 2100003 | System internal error. | 568 569**示例:** 570 571```js 572connection.isDefaultNetMetered().then(function (data) { 573 console.log('data: ' + data) 574}) 575``` 576 577## connection.hasDefaultNet 578 579hasDefaultNet(callback: AsyncCallback\<boolean>): void 580 581检查默认数据网络是否被激活,使用callback方式作为异步方法。如果有默认数据网路,可以使用[getDefaultNet](#connectiongetdefaultnet)去获取。 582 583**需要权限**:ohos.permission.GET_NETWORK_INFO 584 585**系统能力**:SystemCapability.Communication.NetManager.Core 586 587**参数:** 588 589| 参数名 | 类型 | 必填 | 说明 | 590| -------- | ----------------------- | ---- | -------------------------------------- | 591| callback | AsyncCallback\<boolean> | 是 | 回调函数。默认数据网络被激活返回true。 | 592 593**错误码:** 594 595| 错误码ID | 错误信息 | 596| ------- | ----------------------------- | 597| 201 | Permission denied. | 598| 2100002 | Operation failed. Cannot connect to service.| 599| 2100003 | System internal error. | 600 601**示例:** 602 603```js 604connection.hasDefaultNet(function (error, data) { 605 console.log(JSON.stringify(error)) 606 console.log('data: ' + data) 607}) 608``` 609 610## connection.hasDefaultNet 611 612hasDefaultNet(): Promise\<boolean> 613 614检查默认数据网络是否被激活,使用Promise方式作为异步方法。如果有默认数据网路,可以使用[getDefaultNet](#connectiongetdefaultnet)去获取。 615 616**需要权限**:ohos.permission.GET_NETWORK_INFO 617 618**系统能力**:SystemCapability.Communication.NetManager.Core 619 620**返回值:** 621 622| 类型 | 说明 | 623| ----------------- | ----------------------------------------------- | 624| Promise\<boolean> | 以Promise形式返回,默认数据网络被激活返回true。 | 625 626**错误码:** 627 628| 错误码ID | 错误信息 | 629| ------- | ----------------------------- | 630| 201 | Permission denied. | 631| 2100002 | Operation failed. Cannot connect to service.| 632| 2100003 | System internal error. | 633 634**示例:** 635 636```js 637connection.hasDefaultNet().then(function (data) { 638 console.log('data: ' + data) 639}) 640``` 641 642## connection.enableAirplaneMode 643 644enableAirplaneMode(callback: AsyncCallback\<void>): void 645 646开启飞行模式,使用callback方式作为异步方法。 647 648**系统接口**:此接口为系统接口。 649 650**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL 651 652**系统能力**:SystemCapability.Communication.NetManager.Core 653 654**参数:** 655 656| 参数名 | 类型 | 必填 | 说明 | 657| -------- | ------------------------------------------------- | ---- | ------------------ | 658| callback | AsyncCallback\<void> | 是 | 回调函数。 | 659 660**错误码:** 661 662| 错误码ID | 错误信息 | 663| ------- | ----------------------------- | 664| 2100002 | Operation failed. Cannot connect to service.| 665| 2100003 | System internal error. | 666 667**示例:** 668 669```js 670connection.enableAirplaneMode(function (error) { 671 console.log(JSON.stringify(error)) 672}) 673``` 674 675## connection.enableAirplaneMode 676 677enableAirplaneMode(): Promise\<void> 678 679开启飞行模式,使用Promise方式作为异步方法。 680 681**系统接口**:此接口为系统接口。 682 683**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL 684 685**系统能力**:SystemCapability.Communication.NetManager.Core 686 687**返回值:** 688 689| 类型 | 说明 | 690| ------------------------------------------- | ----------------------------- | 691| Promise\<void> | 无返回值的Promise对象。 | 692 693**错误码:** 694 695| 错误码ID | 错误信息 | 696| ------- | ----------------------------- | 697| 2100002 | Operation failed. Cannot connect to service.| 698| 2100003 | System internal error. | 699 700**示例:** 701 702```js 703connection.enableAirplaneMode().then(function (error) { 704 console.log(JSON.stringify(error)) 705}) 706``` 707 708## connection.disableAirplaneMode 709 710disableAirplaneMode(callback: AsyncCallback\<void>): void 711 712关闭飞行模式,使用callback方式作为异步方法。 713 714**系统接口**:此接口为系统接口。 715 716**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL 717 718**系统能力**:SystemCapability.Communication.NetManager.Core 719 720**参数:** 721 722| 参数名 | 类型 | 必填 | 说明 | 723| -------- | ------------------------------------------------- | ---- | ------------------ | 724| callback | AsyncCallback\<void> | 是 | 回调函数。当关闭飞行模式成功,err为undefined,否则为错误对象。| 725 726**错误码:** 727 728| 错误码ID | 错误信息 | 729| ------- | ----------------------------- | 730| 2100002 | Operation failed. Cannot connect to service.| 731| 2100003 | System internal error. | 732 733**示例:** 734 735```js 736connection.disableAirplaneMode(function (error) { 737 console.log(JSON.stringify(error)) 738}) 739``` 740 741## connection.disableAirplaneMode 742 743disableAirplaneMode(): Promise\<void> 744 745关闭飞行模式,使用Promise方式作为异步方法。 746 747**系统接口**:此接口为系统接口。 748 749**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL 750 751**系统能力**:SystemCapability.Communication.NetManager.Core 752 753**返回值:** 754 755| 类型 | 说明 | 756| ------------------------------------------- | ----------------------------- | 757| Promise\<void> | 无返回值的Promise对象。 | 758 759**错误码:** 760 761| 错误码ID | 错误信息 | 762| ------- | ----------------------------- | 763| 2100002 | Operation failed. Cannot connect to service.| 764| 2100003 | System internal error. | 765 766**示例:** 767 768```js 769connection.disableAirplaneMode().then(function (error) { 770 console.log(JSON.stringify(error)) 771}) 772``` 773 774## connection.reportNetConnected 775 776reportNetConnected(netHandle: NetHandle, callback: AsyncCallback<void>): void 777 778向网络管理报告网络处于可用状态,使用callback方式作为异步方法。 779 780**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET 781 782**系统能力**:SystemCapability.Communication.NetManager.Core 783 784**参数:** 785 786| 参数名 | 类型 | 必填 | 说明 | 787| -------- | -------- | -------- | -------- | 788| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 | 789| callback | AsyncCallback<void> | 是 | 回调函数。当向网络管理报告网络处于可用状态成功,err为undefined,否则为错误对象。 | 790 791**错误码:** 792 793| 错误码ID | 错误信息 | 794| ------- | ----------------------------- | 795| 201 | Permission denied. | 796| 401 | Parameter error. | 797| 2100001 | Invalid parameter value. | 798| 2100002 | Operation failed. Cannot connect to service.| 799| 2100003 | System internal error. | 800 801**示例:** 802 803```js 804connection.getDefaultNet().then(function (netHandle) { 805 connection.reportNetConnected(netHandle, function (error) { 806 console.log(JSON.stringify(error)) 807 }); 808}); 809``` 810 811## connection.reportNetConnected 812 813reportNetConnected(netHandle: NetHandle): Promise<void> 814 815向网络管理报告网络处于可用状态,使用Promise方式作为异步方法。 816 817**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET 818 819**系统能力**:SystemCapability.Communication.NetManager.Core 820 821**参数:** 822 823| 参数名 | 类型 | 必填 | 说明 | 824| -------- | -------- | -------- | -------- | 825| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 | 826 827**返回值:** 828| 类型 | 说明 | 829| -------- | -------- | 830| Promise<void> | 无返回值的Promise对象。 | 831 832**错误码:** 833 834| 错误码ID | 错误信息 | 835| ------- | ----------------------------- | 836| 201 | Permission denied. | 837| 401 | Parameter error. | 838| 2100001 | Invalid parameter value. | 839| 2100002 | Operation failed. Cannot connect to service.| 840| 2100003 | System internal error. | 841 842**示例:** 843 844```js 845connection.getDefaultNet().then(function (netHandle) { 846 connection.reportNetConnected(netHandle).then(function () { 847 console.log(`report success`) 848 }); 849}); 850``` 851 852## connection.reportNetDisconnected 853 854reportNetDisconnected(netHandle: NetHandle, callback: AsyncCallback<void>): void 855 856向网络管理报告网络处于不可用状态,使用callback方式作为异步方法。 857 858**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET 859 860**系统能力**:SystemCapability.Communication.NetManager.Core 861 862**参数:** 863 864| 参数名 | 类型 | 必填 | 说明 | 865| -------- | -------- | -------- | -------- | 866| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 | 867| callback | AsyncCallback<void> | 是 | 回调函数。当向网络管理报告网络处于不可用状态成功,err为undefined,否则为错误对象。 | 868 869**错误码:** 870 871| 错误码ID | 错误信息 | 872| ------- | ----------------------------- | 873| 201 | Permission denied. | 874| 401 | Parameter error. | 875| 2100001 | Invalid parameter value. | 876| 2100002 | Operation failed. Cannot connect to service.| 877| 2100003 | System internal error. | 878 879**示例:** 880 881```js 882connection.getDefaultNet().then(function (netHandle) { 883 connection.reportNetDisconnected(netHandle, function (error) { 884 console.log(JSON.stringify(error)) 885 }); 886}); 887``` 888 889## connection.reportNetDisconnected 890 891reportNetDisconnected(netHandle: NetHandle): Promise<void> 892 893向网络管理报告网络处于不可用状态,使用Promise方式作为异步方法。 894 895**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET 896 897**系统能力**:SystemCapability.Communication.NetManager.Core 898 899**参数:** 900 901| 参数名 | 类型 | 必填 | 说明 | 902| -------- | -------- | -------- | -------- | 903| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 | 904 905**返回值:** 906| 类型 | 说明 | 907| -------- | -------- | 908| Promise<void> | 无返回值的Promise对象。 | 909 910**错误码:** 911 912| 错误码ID | 错误信息 | 913| ------- | ----------------------------- | 914| 201 | Permission denied. | 915| 401 | Parameter error. | 916| 2100001 | Invalid parameter value. | 917| 2100002 | Operation failed. Cannot connect to service.| 918| 2100003 | System internal error. | 919 920**示例:** 921 922```js 923connection.getDefaultNet().then(function (netHandle) { 924 connection.reportNetDisconnected(netHandle).then(function () { 925 console.log(`report success`) 926 }); 927}); 928``` 929 930## connection.getAddressesByName 931 932getAddressesByName(host: string, callback: AsyncCallback\<Array\<NetAddress>>): void 933 934使用默认网络解析主机名以获取所有IP地址,使用callback方式作为异步方法。 935 936**需要权限**:ohos.permission.INTERNET 937 938**系统能力**:SystemCapability.Communication.NetManager.Core 939 940**参数:** 941 942| 参数名 | 类型 | 必填 | 说明 | 943| -------- | ------------------------------------------------- | ---- | ------------------ | 944| host | string | 是 | 需要解析的主机名。 | 945| callback | AsyncCallback\<Array\<[NetAddress](#netaddress)>> | 是 | 回调函数。当使用默认网络解析主机名成功获取所有IP地址,err为undefined,data为获取到的所有IP地址;否则为错误对象。| 946 947**错误码:** 948 949| 错误码ID | 错误信息 | 950| ------- | ----------------------------- | 951| 201 | Permission denied. | 952| 401 | Parameter error. | 953| 2100001 | Invalid parameter value. | 954| 2100002 | Operation failed. Cannot connect to service.| 955| 2100003 | System internal error. | 956 957**示例:** 958 959```js 960let host = "xxxx"; 961connection.getAddressesByName(host, function (error, data) { 962 console.log(JSON.stringify(error)) 963 console.log(JSON.stringify(data)) 964}) 965``` 966 967## connection.getAddressesByName 968 969getAddressesByName(host: string): Promise\<Array\<NetAddress>> 970 971使用默认网络解析主机名以获取所有IP地址,使用Promise方式作为异步方法。 972 973**需要权限**:ohos.permission.INTERNET 974 975**系统能力**:SystemCapability.Communication.NetManager.Core 976 977**参数:** 978 979| 参数名 | 类型 | 必填 | 说明 | 980| ------ | ------ | ---- | ------------------ | 981| host | string | 是 | 需要解析的主机名。 | 982 983**返回值:** 984 985| 类型 | 说明 | 986| ------------------------------------------- | ----------------------------- | 987| Promise\<Array\<[NetAddress](#netaddress)>> | 以Promise形式返回所有IP地址。 | 988 989**错误码:** 990 991| 错误码ID | 错误信息 | 992| ------- | ----------------------------- | 993| 201 | Permission denied. | 994| 401 | Parameter error. | 995| 2100001 | Invalid parameter value. | 996| 2100002 | Operation failed. Cannot connect to service.| 997| 2100003 | System internal error. | 998 999**示例:** 1000 1001```js 1002let host = "xxxx"; 1003connection.getAddressesByName(host).then(function (data) { 1004 console.log(JSON.stringify(data)) 1005}) 1006``` 1007 1008## NetConnection 1009 1010网络连接的句柄。 1011 1012### register 1013 1014register(callback: AsyncCallback\<void>): void 1015 1016订阅指定网络状态变化的通知。 1017 1018**需要权限**:ohos.permission.GET_NETWORK_INFO 1019 1020**系统能力**:SystemCapability.Communication.NetManager.Core 1021 1022**参数:** 1023 1024| 参数名 | 类型 | 必填 | 说明 | 1025| -------- | -------------------- | ---- | ---------- | 1026| callback | AsyncCallback\<void> | 是 | 回调函数。当订阅指定网络状态变化的通知成功,err为undefined,否则为错误对象。 | 1027 1028**错误码:** 1029 1030| 错误码ID | 错误信息 | 1031| ------- | ----------------------------- | 1032| 201 | Permission denied. | 1033| 2100002 | Operation failed. Cannot connect to service.| 1034| 2100003 | System internal error. | 1035| 2101008 | The callback is not exists. | 1036| 2101022 | The number of requests exceeded the maximum. | 1037 1038**示例:** 1039 1040```js 1041netConnection.register(function (error) { 1042 console.log(JSON.stringify(error)) 1043}) 1044``` 1045 1046### unregister 1047 1048unregister(callback: AsyncCallback\<void>): void 1049 1050取消订阅默认网络状态变化的通知。 1051 1052**系统能力**:SystemCapability.Communication.NetManager.Core 1053 1054**参数:** 1055 1056| 参数名 | 类型 | 必填 | 说明 | 1057| -------- | -------------------- | ---- | ---------- | 1058| callback | AsyncCallback\<void> | 是 | 回调函数。当取消订阅指定网络状态变化的通知成功,err为undefined,否则为错误对象。 | 1059 1060**错误码:** 1061 1062| 错误码ID | 错误信息 | 1063| ------- | ----------------------------- | 1064| 2100002 | Operation failed. Cannot connect to service.| 1065| 2100003 | System internal error. | 1066| 2101007 | The same callback exists. | 1067 1068**示例:** 1069 1070```js 1071netConnection.unregister(function (error) { 1072 console.log(JSON.stringify(error)) 1073}) 1074``` 1075 1076### on('netAvailable') 1077 1078on(type: 'netAvailable', callback: Callback\<NetHandle>): void 1079 1080订阅网络可用事件。 1081 1082**模型约束**:此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。 1083 1084**系统能力**:SystemCapability.Communication.NetManager.Core 1085 1086**参数:** 1087 1088| 参数名 | 类型 | 必填 | 说明 | 1089| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ | 1090| type | string | 是 | 订阅事件,固定为'netAvailable'。<br>netAvailable:数据网络可用事件。 | 1091| callback | Callback\<[NetHandle](#nethandle)> | 是 | 回调函数,返回数据网络句柄。| 1092 1093**示例:** 1094 1095```js 1096// 创建NetConnection对象 1097let netCon = connection.createNetConnection() 1098 1099// 先使用register接口注册订阅事件 1100netCon.register(function (error) { 1101 console.log(JSON.stringify(error)) 1102}) 1103 1104// 订阅网络可用事件。调用register后,才能接收到此事件通知 1105netCon.on('netAvailable', function (data) { 1106 console.log(JSON.stringify(data)) 1107}) 1108 1109// 使用unregister接口取消订阅 1110netCon.unregister(function (error) { 1111 console.log(JSON.stringify(error)) 1112}) 1113``` 1114 1115### on('netBlockStatusChange') 1116 1117on(type: 'netBlockStatusChange', callback: Callback<{ netHandle: NetHandle, blocked: boolean }>): void 1118 1119订阅网络阻塞状态事件,使用callback方式作为异步方法。 1120 1121**模型约束**:此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。 1122 1123**系统能力**:SystemCapability.Communication.NetManager.Core 1124 1125**参数:** 1126 1127| 参数名 | 类型 | 必填 | 说明 | 1128| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 1129| type | string | 是 | 订阅事件,固定为'netBlockStatusChange'。<br/>netBlockStatusChange:网络阻塞状态事件。 | 1130| callback | Callback<{ netHandle: [NetHandle](#nethandle), blocked: boolean }> | 是 | 回调函数,返回数据网络句柄(netHandle),及网络堵塞状态(blocked)。| 1131 1132**示例:** 1133 1134```js 1135// 创建NetConnection对象 1136let netCon = connection.createNetConnection() 1137 1138// 先使用register接口注册订阅事件 1139netCon.register(function (error) { 1140 console.log(JSON.stringify(error)) 1141}) 1142 1143// 订阅网络阻塞状态事件。调用register后,才能接收到此事件通知 1144netCon.on('netBlockStatusChange', function (data) { 1145 console.log(JSON.stringify(data)) 1146}) 1147 1148// 使用unregister接口取消订阅 1149netCon.unregister(function (error) { 1150 console.log(JSON.stringify(error)) 1151}) 1152``` 1153 1154### on('netCapabilitiesChange') 1155 1156on(type: 'netCapabilitiesChange', callback: Callback<{ netHandle: NetHandle, netCap: NetCapabilities }>): void 1157 1158订阅网络能力变化事件。 1159 1160**模型约束**:此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。 1161 1162**系统能力**:SystemCapability.Communication.NetManager.Core 1163 1164**参数:** 1165 1166| 参数名 | 类型 | 必填 | 说明 | 1167| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 1168| type | string | 是 | 订阅事件,固定为'netCapabilitiesChange'。<br/>netCapabilitiesChange:网络能力变化事件。 | 1169| callback | Callback<{ netHandle: [NetHandle](#nethandle), netCap: [NetCapabilities](#netcapabilities) }> | 是 | 回调函数,返回数据网络句柄(netHandle)和网络的能力信息(netCap)。| 1170 1171**示例:** 1172 1173```js 1174// 创建NetConnection对象 1175let netCon = connection.createNetConnection() 1176 1177// 先使用register接口注册订阅事件 1178netCon.register(function (error) { 1179 console.log(JSON.stringify(error)) 1180}) 1181 1182// 订阅网络能力变化事件。调用register后,才能接收到此事件通知 1183netCon.on('netCapabilitiesChange', function (data) { 1184 console.log(JSON.stringify(data)) 1185}) 1186 1187// 使用unregister接口取消订阅 1188netCon.unregister(function (error) { 1189 console.log(JSON.stringify(error)) 1190}) 1191``` 1192 1193### on('netConnectionPropertiesChange') 1194 1195on(type: 'netConnectionPropertiesChange', callback: Callback<{ netHandle: NetHandle, connectionProperties: 1196ConnectionProperties }>): void 1197 1198订阅网络连接信息变化事件。 1199 1200**模型约束**:此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。 1201 1202**系统能力**:SystemCapability.Communication.NetManager.Core 1203 1204**参数:** 1205 1206| 参数名 | 类型 | 必填 | 说明 | 1207| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 1208| type | string | 是 | 订阅事件,固定为'netConnectionPropertiesChange'。<br/>netConnectionPropertiesChange:网络连接信息变化事件。 | 1209| callback | Callback<{ netHandle: [NetHandle](#nethandle), connectionProperties: [ConnectionProperties](#connectionproperties) }> | 是 | 回调函数,返回数据网络句柄(netHandle)和网络的连接信息(connectionProperties)| 1210 1211**示例:** 1212 1213```js 1214// 创建NetConnection对象 1215let netCon = connection.createNetConnection() 1216 1217// 先使用register接口注册订阅事件 1218netCon.register(function (error) { 1219 console.log(JSON.stringify(error)) 1220}) 1221 1222// 订阅网络连接信息变化事件。调用register后,才能接收到此事件通知 1223netCon.on('netConnectionPropertiesChange', function (data) { 1224 console.log(JSON.stringify(data)) 1225}) 1226 1227// 使用unregister接口取消订阅 1228netCon.unregister(function (error) { 1229 console.log(JSON.stringify(error)) 1230}) 1231``` 1232 1233### on('netLost') 1234 1235on(type: 'netLost', callback: Callback\<NetHandle>): void 1236 1237订阅网络丢失事件。 1238 1239**模型约束**:此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。 1240 1241**系统能力**:SystemCapability.Communication.NetManager.Core 1242 1243**参数:** 1244 1245| 参数名 | 类型 | 必填 | 说明 | 1246| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ | 1247| type | string | 是 | 订阅事件,固定为'netLost'。<br/>netLost:网络严重中断或正常断开事件。 | 1248| callback | Callback\<[NetHandle](#nethandle)> | 是 | 回调函数,数据网络句柄(netHandle)| 1249 1250**示例:** 1251 1252```js 1253// 创建NetConnection对象 1254let netCon = connection.createNetConnection() 1255 1256// 先使用register接口注册订阅事件 1257netCon.register(function (error) { 1258 console.log(JSON.stringify(error)) 1259}) 1260 1261// 订阅网络丢失事件。调用register后,才能接收到此事件通知 1262netCon.on('netLost', function (data) { 1263 console.log(JSON.stringify(data)) 1264}) 1265 1266// 使用unregister接口取消订阅 1267netCon.unregister(function (error) { 1268 console.log(JSON.stringify(error)) 1269}) 1270``` 1271 1272### on('netUnavailable') 1273 1274on(type: 'netUnavailable', callback: Callback\<void>): void 1275 1276订阅网络不可用事件。 1277 1278**模型约束**:此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。 1279 1280**系统能力**:SystemCapability.Communication.NetManager.Core 1281 1282**参数:** 1283 1284| 参数名 | 类型 | 必填 | 说明 | 1285| -------- | --------------- | ---- | ------------------------------------------------------------ | 1286| type | string | 是 | 订阅事件,固定为'netUnavailable'。<br/>netUnavailable:网络不可用事件。 | 1287| callback | Callback\<void> | 是 | 回调函数,无返回结果。| 1288 1289**示例:** 1290 1291```js 1292// 创建NetConnection对象 1293let netCon = connection.createNetConnection() 1294 1295// 先使用register接口注册订阅事件 1296netCon.register(function (error) { 1297 console.log(JSON.stringify(error)) 1298}) 1299 1300// 订阅网络不可用事件。调用register后,才能接收到此事件通知 1301netCon.on('netUnavailable', function (data) { 1302 console.log(JSON.stringify(data)) 1303}) 1304 1305// 使用unregister接口取消订阅 1306netCon.unregister(function (error) { 1307 console.log(JSON.stringify(error)) 1308}) 1309``` 1310 1311## NetHandle 1312 1313数据网络的句柄。 1314 1315在调用NetHandle的方法之前,需要先获取NetHandle对象。 1316 1317**系统能力**:SystemCapability.Communication.NetManager.Core 1318 1319### 属性 1320 1321| 名称 | 类型 | 必填 | 说明 | 1322| ------ | ------ | --- |------------------------- | 1323| netId | number | 是 | 网络ID,取值为0代表没有默认网络,其余取值必须大于等于100。 | 1324 1325### bindSocket<sup>9+</sup> 1326 1327bindSocket(socketParam: TCPSocket \| UDPSocket, callback: AsyncCallback\<void>): void 1328 1329将TCPSocket或UDPSocket绑定到当前网络,使用callback方式作为异步方法。 1330 1331**系统能力**:SystemCapability.Communication.NetManager.Core 1332 1333**参数:** 1334 1335| 参数名 | 类型 | 必填 | 说明 | 1336| ----------- | ------------------------ | ---- | -------------------------------| 1337| socketParam | [TCPSocket](js-apis-socket.md#tcpsocket) \| [UDPSocket](js-apis-socket.md#udpsocket) | 是 | 待绑定的TCPSocket或UDPSocket对象。| 1338| callback | AsyncCallback\<void> | 是 | 回调函数。当TCPSocket或UDPSocket成功绑定到当前网络,err为undefined,否则为错误对象。| 1339 1340**错误码:** 1341 1342| 错误码ID | 错误信息 | 1343| ------- | ----------------------------- | 1344| 401 | Parameter error. | 1345| 2100001 | Invalid parameter value. | 1346| 2100002 | Operation failed. Cannot connect to service.| 1347| 2100003 | System internal error. | 1348 1349**示例:** 1350 1351```js 1352import socket from "@ohos.net.socket"; 1353 1354connection.getDefaultNet().then((netHandle) => { 1355 var tcp = socket.constructTCPSocketInstance(); 1356 var udp = socket.constructUDPSocketInstance(); 1357 let socketType = "TCPSocket"; 1358 if (socketType == "TCPSocket") { 1359 tcp.bind({ 1360 address: '192.168.xx.xxx', port: 8080, family: 1 1361 }, error => { 1362 if (error) { 1363 console.log('bind fail'); 1364 return; 1365 } 1366 netHandle.bindSocket(tcp, (error, data) => { 1367 if (error) { 1368 console.log(JSON.stringify(error)); 1369 } else { 1370 console.log(JSON.stringify(data)); 1371 } 1372 }) 1373 }) 1374 } else { 1375 let callback = value => { 1376 console.log("on message, message:" + value.message + ", remoteInfo:" + value.remoteInfo); 1377 } 1378 udp.on('message', callback); 1379 udp.bind({ 1380 address: '192.168.xx.xxx', port: 8080, family: 1 1381 }, error => { 1382 if (error) { 1383 console.log('bind fail'); 1384 return; 1385 } 1386 udp.on('message', (data) => { 1387 console.log(JSON.stringify(data)) 1388 }); 1389 netHandle.bindSocket(udp, (error, data) => { 1390 if (error) { 1391 console.log(JSON.stringify(error)); 1392 } else { 1393 console.log(JSON.stringify(data)); 1394 } 1395 }) 1396 }) 1397 } 1398}) 1399``` 1400 1401### bindSocket<sup>9+</sup> 1402 1403bindSocket(socketParam: TCPSocket \| UDPSocket): Promise\<void>; 1404 1405将TCPSocket或UDPSockett绑定到当前网络,使用Promise方式作为异步方法。 1406 1407**系统能力**:SystemCapability.Communication.NetManager.Core 1408 1409**参数:** 1410 1411| 参数名 | 类型 | 必填 | 说明 | 1412| --------------- | --------------------- | ---- | ------------------------------ | 1413| socketParam | [TCPSocket](js-apis-socket.md#tcpsocket) \| [UDPSocket](js-apis-socket.md#udpsocket) | 是 | 待绑定的TCPSocket或UDPSocket对象。| 1414 1415**返回值:** 1416 1417| 类型 | 说明 | 1418| -------------- | ---------------------- | 1419| Promise\<void> | 无返回值的Promise对象。 | 1420 1421**错误码:** 1422 1423| 错误码ID | 错误信息 | 1424| ------- | ----------------------------- | 1425| 401 | Parameter error. | 1426| 2100001 | Invalid parameter value. | 1427| 2100002 | Operation failed. Cannot connect to service.| 1428| 2100003 | System internal error. | 1429 1430**示例:** 1431 1432```js 1433import socket from "@ohos.net.socket"; 1434 1435connection.getDefaultNet().then((netHandle) => { 1436 var tcp = socket.constructTCPSocketInstance(); 1437 var udp = socket.constructUDPSocketInstance(); 1438 let socketType = "TCPSocket"; 1439 if (socketType == "TCPSocket") { 1440 tcp.bind({ 1441 address: '192.168.xx.xxx', port: 8080, family: 1 1442 }, error => { 1443 if (error) { 1444 console.log('bind fail'); 1445 return; 1446 } 1447 netHandle.bindSocket(tcp).then((data) => { 1448 console.log(JSON.stringify(data)); 1449 }).catch(error => { 1450 console.log(JSON.stringify(error)); 1451 }) 1452 }) 1453 } else { 1454 let callback = value => { 1455 console.log("on message, message:" + value.message + ", remoteInfo:" + value.remoteInfo); 1456 } 1457 udp.on('message', callback); 1458 udp.bind({ 1459 address: '192.168.xx.xxx', port: 8080, family: 1 1460 }, error => { 1461 if (error) { 1462 console.log('bind fail'); 1463 return; 1464 } 1465 udp.on('message', (data) => { 1466 console.log(JSON.stringify(data)); 1467 }) 1468 netHandle.bindSocket(udp).then((data) => { 1469 console.log(JSON.stringify(data)); 1470 }).catch(error => { 1471 console.log(JSON.stringify(error)); 1472 }) 1473 }) 1474 } 1475}) 1476``` 1477 1478### getAddressesByName 1479 1480getAddressesByName(host: string, callback: AsyncCallback\<Array\<NetAddress>>): void 1481 1482使用对应网络解析主机名以获取所有IP地址,使用callback方式作为异步方法。 1483 1484**需要权限**:ohos.permission.INTERNET 1485 1486**系统能力**:SystemCapability.Communication.NetManager.Core 1487 1488**参数:** 1489 1490| 参数名 | 类型 | 必填 | 说明 | 1491| -------- | ------------------------------------------------- | ---- | ------------------ | 1492| host | string | 是 | 需要解析的主机名。 | 1493| callback | AsyncCallback\<Array\<[NetAddress](#netaddress)>> | 是 | 回调函数。当使用对应网络解析主机名成功获取所有IP地址,err为undefined,data为获取到的所有IP地址;否则为错误对象。| 1494 1495**错误码:** 1496 1497| 错误码ID | 错误信息 | 1498| ------- | ----------------------------- | 1499| 201 | Permission denied. | 1500| 401 | Parameter error. | 1501| 2100001 | Invalid parameter value. | 1502| 2100002 | Operation failed. Cannot connect to service.| 1503| 2100003 | System internal error. | 1504 1505**示例:** 1506 1507```js 1508connection.getDefaultNet().then(function (netHandle) { 1509 let host = "xxxx"; 1510 netHandle.getAddressesByName(host, function (error, data) { 1511 console.log(JSON.stringify(error)) 1512 console.log(JSON.stringify(data)) 1513 }) 1514}) 1515``` 1516 1517### getAddressesByName 1518 1519getAddressesByName(host: string): Promise\<Array\<NetAddress>> 1520 1521使用对应网络解析主机名以获取所有IP地址,使用Promise方式作为异步方法。 1522 1523**需要权限**:ohos.permission.INTERNET 1524 1525**系统能力**:SystemCapability.Communication.NetManager.Core 1526 1527**参数:** 1528 1529| 参数名 | 类型 | 必填 | 说明 | 1530| ------ | ------ | ---- | ------------------ | 1531| host | string | 是 | 需要解析的主机名。 | 1532 1533**返回值:** 1534 1535| 类型 | 说明 | 1536| ------------------------------------------- | ----------------------------- | 1537| Promise\<Array\<[NetAddress](#netaddress)>> | 以Promise形式返回所有IP地址。 | 1538 1539**错误码:** 1540 1541| 错误码ID | 错误信息 | 1542| ------- | ----------------------------- | 1543| 201 | Permission denied. | 1544| 401 | Parameter error. | 1545| 2100001 | Invalid parameter value. | 1546| 2100002 | Operation failed. Cannot connect to service.| 1547| 2100003 | System internal error. | 1548 1549**示例:** 1550 1551```js 1552connection.getDefaultNet().then(function (netHandle) { 1553 let host = "xxxx"; 1554 netHandle.getAddressesByName(host).then(function (data) { 1555 console.log(JSON.stringify(data)) 1556 }) 1557}) 1558``` 1559 1560### getAddressByName 1561 1562getAddressByName(host: string, callback: AsyncCallback\<NetAddress>): void 1563 1564使用对应网络解析主机名以获取第一个IP地址,使用callback方式作为异步方法。 1565 1566**需要权限**:ohos.permission.INTERNET 1567 1568**系统能力**:SystemCapability.Communication.NetManager.Core 1569 1570**参数:** 1571 1572| 参数名 | 类型 | 必填 | 说明 | 1573| -------- | ----------------------------------------- | ---- | ------------------ | 1574| host | string | 是 | 需要解析的主机名。 | 1575| callback | AsyncCallback\<[NetAddress](#netaddress)> | 是 | 回调函数。当使用对应网络解析主机名获取第一个IP地址成功,err为undefined,data为获取的第一个IP地址;否则为错误对象。 | 1576 1577**错误码:** 1578 1579| 错误码ID | 错误信息 | 1580| ------- | ----------------------------- | 1581| 201 | Permission denied. | 1582| 401 | Parameter error. | 1583| 2100001 | Invalid parameter value. | 1584| 2100002 | Operation failed. Cannot connect to service.| 1585| 2100003 | System internal error. | 1586 1587**示例:** 1588 1589```js 1590connection.getDefaultNet().then(function (netHandle) { 1591 let host = "xxxx"; 1592 netHandle.getAddressByName(host, function (error, data) { 1593 console.log(JSON.stringify(error)) 1594 console.log(JSON.stringify(data)) 1595 }) 1596}) 1597``` 1598 1599### getAddressByName 1600 1601getAddressByName(host: string): Promise\<NetAddress> 1602 1603使用对应网络解析主机名以获取第一个IP地址,使用Promise方式作为异步方法。 1604 1605**需要权限**:ohos.permission.INTERNET 1606 1607**系统能力**:SystemCapability.Communication.NetManager.Core 1608 1609**参数:** 1610 1611| 参数名 | 类型 | 必填 | 说明 | 1612| ------ | ------ | ---- | ------------------ | 1613| host | string | 是 | 需要解析的主机名。 | 1614 1615**返回值:** 1616 1617| 类型 | 说明 | 1618| ----------------------------------- | ------------------------------- | 1619| Promise\<[NetAddress](#netaddress)> | 以Promise形式返回第一个IP地址。 | 1620 1621**错误码:** 1622 1623| 错误码ID | 错误信息 | 1624| ------- | ----------------------------- | 1625| 201 | Permission denied. | 1626| 401 | Parameter error. | 1627| 2100001 | Invalid parameter value. | 1628| 2100002 | Operation failed. Cannot connect to service.| 1629| 2100003 | System internal error. | 1630 1631**示例:** 1632 1633```js 1634connection.getDefaultNet().then(function (netHandle) { 1635 let host = "xxxx"; 1636 netHandle.getAddressByName(host).then(function (data) { 1637 console.log(JSON.stringify(data)) 1638 }) 1639}) 1640``` 1641 1642## NetCap 1643 1644网络具体能力。 1645 1646**系统能力**:SystemCapability.Communication.NetManager.Core 1647 1648| 名称 | 值 | 说明 | 1649| ------------------------ | ---- | ---------------------- | 1650| NET_CAPABILITY_MMS | 0 | 表示网络可以访问运营商的MMSC(Multimedia Message Service,多媒体短信服务)发送和接收彩信。 | 1651| NET_CAPABILITY_NOT_METERED | 11 | 表示网络流量未被计费。 | 1652| NET_CAPABILITY_INTERNET | 12 | 表示该网络应具有访问Internet的能力,该能力由网络提供者设置。 | 1653| NET_CAPABILITY_NOT_VPN | 15 | 表示网络不使用VPN(Virtual Private Network,虚拟专用网络)。 | 1654| NET_CAPABILITY_VALIDATED | 16 | 表示该网络访问Internet的能力被网络管理成功验证,该能力由网络管理模块设置。 | 1655 1656## NetBearType 1657 1658网络类型。 1659 1660**系统能力**:SystemCapability.Communication.NetManager.Core 1661 1662| 名称 | 值 | 说明 | 1663| --------------- | ---- | ----------- | 1664| BEARER_CELLULAR | 0 | 蜂窝网络。 | 1665| BEARER_WIFI | 1 | Wi-Fi网络。 | 1666| BEARER_ETHERNET | 3 | 以太网网络。 | 1667 1668## NetSpecifier 1669 1670提供承载数据网络能力的实例。 1671 1672**系统能力**:SystemCapability.Communication.NetManager.Core 1673 1674| 名称 | 类型 | 必填 | 说明 | 1675| ----------------------- | ----------------------------------- | ---- | ------------------------------------------------------------ | 1676| netCapabilities | [NetCapabilities](#netcapabilities) | 是 | 存储数据网络的传输能力和承载类型。 | 1677| bearerPrivateIdentifier | string | 否 | 网络标识符,Wi-Fi网络的标识符是"wifi",蜂窝网络的标识符是"slot0"(对应SIM卡1)。 | 1678 1679## NetCapabilities 1680 1681网络的能力集。 1682 1683**系统能力**:SystemCapability.Communication.NetManager.Core 1684 1685| 名称 | 类型 | 必填 | 说明 | 1686| --------------------- | ---------------------------------- | --- | ------------------------ | 1687| linkUpBandwidthKbps | number | 否 | 上行(设备到网络)带宽。 | 1688| linkDownBandwidthKbps | number | 否 | 下行(网络到设备)带宽。 | 1689| networkCap | Array\<[NetCap](#netcap)> | 否 | 网络具体能力。 | 1690| bearerTypes | Array\<[NetBearType](#netbeartype)> | 是 | 网络类型。 | 1691 1692## ConnectionProperties 1693 1694网络连接信息。 1695 1696**系统能力**:SystemCapability.Communication.NetManager.Core 1697 1698| 名称 | 类型 | 必填 | 说明 | 1699| ------------- | ---------------------------------- | ----|---------------- | 1700| interfaceName | string | 是 |网卡名称。 | 1701| domains | string | 是 |所属域,默认""。 | 1702| linkAddresses | Array\<[LinkAddress](#linkaddress)> | 是 |链路信息。 | 1703| routes | Array\<[RouteInfo](#routeinfo)> | 是 |路由信息。 | 1704| dnses | Array\<[NetAddress](#netaddress)> | 是 |网络地址,参考[NetAddress](#netaddress)。 | 1705| mtu | number | 是 |最大传输单元。 | 1706 1707## RouteInfo 1708 1709网络路由信息。 1710 1711**系统能力**:SystemCapability.Communication.NetManager.Core 1712 1713| 名称 | 类型 | 必填 |说明 | 1714| -------------- | --------------------------- | --- |---------------- | 1715| interface | string | 是 |网卡名称。 | 1716| destination | [LinkAddress](#linkaddress) | 是 |目的地址。 | 1717| gateway | [NetAddress](#netaddress) | 是 |网关地址。 | 1718| hasGateway | boolean | 是 |是否有网关。 | 1719| isDefaultRoute | boolean | 是 |是否为默认路由。 | 1720 1721## LinkAddress 1722 1723网络链路信息。 1724 1725**系统能力**:SystemCapability.Communication.NetManager.Core 1726 1727| 名称 | 类型 | 必填 |说明 | 1728| ------------ | ----------------------- |---- |-------------------- | 1729| address | [NetAddress](#netaddress) | 是 | 链路地址。 | 1730| prefixLength | number | 是 |链路地址前缀的长度。 | 1731 1732## NetAddress 1733 1734网络地址。 1735 1736**系统能力**:SystemCapability.Communication.NetManager.Core 1737 1738| 名称 | 类型 | 必填 | 说明 | 1739| ------- | ------ | -- |------------------------------ | 1740| address | string | 是 |地址。 | 1741| family | number | 否 |IPv4 = 1,IPv6 = 2,默认IPv4。 | 1742| port | number | 否 |端口,取值范围\[0, 65535]。 | 1743