1# 网络连接管理 2 3 4> **说明:** 5> 6> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 7 8## 导入模块 9 10```javascript 11import connection from '@ohos.net.connection' 12``` 13 14## connection.getDefaultNet 15 16getDefaultNet(callback: AsyncCallback\<NetHandle>): void 17 18获取默认激活的数据网络,使用callback方式作为异步方法。 19 20**需要权限**:ohos.permission.GET_NETWORK_INFO 21 22**系统能力**:SystemCapability.Communication.NetManager.Core 23 24**参数:** 25 26| 参数名 | 类型 | 必填 | 说明 | 27| -------- | --------------------------------------- | ---- | ---------- | 28| callback | AsyncCallback\<[NetHandle](#nethandle)> | 是 | 回调函数。 | 29 30**示例:** 31 32```javascript 33connection.getDefaultNet(function (error, netHandle) { 34 console.log(JSON.stringify(error)) 35 console.log(JSON.stringify(netHandle)) 36}) 37``` 38 39## connection.getDefaultNet 40 41getDefaultNet(): Promise\<NetHandle> 42 43获取默认激活的数据网络,使用Promise方式作为异步方法。 44 45**需要权限**:ohos.permission.GET_NETWORK_INFO 46 47**系统能力**:SystemCapability.Communication.NetManager.Core 48 49**返回值:** 50 51| 类型 | 说明 | 52| --------------------------------- | ------------------------------------- | 53| Promise\<[NetHandle](#nethandle)> | 以Promise形式返回默认激活的数据网络。 | 54 55**示例:** 56 57```javascript 58connection.getDefaultNet().then(function (netHandle) { 59 console.log(JSON.stringify(netHandle)) 60}) 61``` 62 63## connection.hasDefaultNet 64 65hasDefaultNet(callback: AsyncCallback\<boolean>): void 66 67检查默认数据网络是否被激活,使用callback方式作为异步方法。 68 69**系统能力**:SystemCapability.Communication.NetManager.Core 70 71**参数:** 72 73| 参数名 | 类型 | 必填 | 说明 | 74| -------- | ----------------------- | ---- | -------------------------------------- | 75| callback | AsyncCallback\<boolean> | 是 | 回调函数,默认数据网络被激活返回true。 | 76 77**示例:** 78 79```javascript 80connection.hasDefaultNet(function (error, has) { 81 console.log(JSON.stringify(error)) 82 console.log(has) 83}) 84``` 85 86## connection.hasDefaultNet 87 88hasDefaultNet(): Promise\<boolean> 89 90检查默认数据网络是否被激活,使用Promise方式作为异步方法。 91 92**系统能力**:SystemCapability.Communication.NetManager.Core 93 94**返回值:** 95 96| 类型 | 说明 | 97| ----------------- | ----------------------------------------------- | 98| Promise\<boolean> | 以Promise形式返回,默认数据网络被激活返回true。 | 99 100**示例:** 101 102```javascript 103connection.hasDefaultNet().then(function (has) { 104 console.log(has) 105}) 106``` 107 108## connection.getAllNets 109 110getAllNets(callback: AsyncCallback<Array<NetHandle>>): void 111 112获取全部激活的数据网络列表,使用callback方式作为异步方法。 113 114**需要权限**:ohos.permission.GET_NETWORK_INFO 115 116**系统能力**:SystemCapability.Communication.NetManager.Core 117 118**参数:** 119| 参数名 | 类型 | 必填 | 说明 | 120| -------- | -------- | -------- | -------- | 121| callback | AsyncCallback<Array<[NetHandle](#nethandle)>> | 是 | 回调函数。 | 122 123**示例:** 124 125``` 126connection.getAllNets(function (error, nets) { 127 console.log(JSON.stringify(error)) 128 console.log(JSON.stringify(nets)) 129}); 130``` 131 132 133## connection.getAllNets 134 135getAllNets(): Promise<Array<NetHandle>> 136 137获取全部激活的数据网络列表,使用promise方式作为异步方法。 138 139**需要权限**:ohos.permission.GET_NETWORK_INFO 140 141**系统能力**:SystemCapability.Communication.NetManager.Core 142 143**返回值:** 144| 类型 | 说明 | 145| -------- | -------- | 146| Promise<Array<[NetHandle](#nethandle)>> | 以Promise形式返回激活的数据网络列表。 | 147 148**示例:** 149 150``` 151connection.getAllNets().then(function (nets) { 152 console.log(JSON.stringify(nets)) 153}); 154``` 155 156## connection.getConnectionProperties 157 158getConnectionProperties(netHandle: NetHandle, callback: AsyncCallback\<ConnectionProperties>): void 159 160获取netHandle对应的网络的连接信息,使用callback方式作为异步方法。 161 162**需要权限**:ohos.permission.GET_NETWORK_INFO 163 164**系统能力**:SystemCapability.Communication.NetManager.Core 165 166**参数:** 167 168| 参数名 | 类型 | 必填 | 说明 | 169| --------- | ------------------------------------------------------------ | ---- | ---------------- | 170| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 171| callback | AsyncCallback\<[ConnectionProperties](#connectionproperties)> | 是 | 回调函数。 | 172 173**示例:** 174 175```javascript 176connection.getDefaultNet().then(function (netHandle) { 177 connection.getConnectionProperties(netHandle, function (error, info) { 178 console.log(JSON.stringify(error)) 179 console.log(JSON.stringify(info)) 180 }) 181}) 182``` 183 184## connection.getConnectionProperties 185 186getConnectionProperties(netHandle: NetHandle): Promise\<ConnectionProperties> 187 188获取netHandle对应的网络的连接信息,使用Promise方式作为异步方法。 189 190**需要权限**:ohos.permission.GET_NETWORK_INFO 191 192**系统能力**:SystemCapability.Communication.NetManager.Core 193 194**参数:** 195 196| 参数名 | 类型 | 必填 | 说明 | 197| --------- | ----------------------- | ---- | ---------------- | 198| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 199 200**返回值:** 201 202| 类型 | 说明 | 203| ------------------------------------------------------- | --------------------------------- | 204| Promise\<[ConnectionProperties](#connectionproperties)> | 以Promise形式返回网络的连接信息。 | 205 206**示例:** 207 208```javascript 209connection.getDefaultNet().then(function (netHandle) { 210 connection.getConnectionProperties(netHandle).then(function (info) { 211 console.log(JSON.stringify(info)) 212 }) 213}) 214``` 215 216## connection.getNetCapabilities 217 218getNetCapabilities(netHandle: NetHandle, callback: AsyncCallback\<NetCapabilities>): void 219 220获取netHandle对应的网络的能力信息,使用callback方式作为异步方法。 221 222**需要权限**:ohos.permission.GET_NETWORK_INFO 223 224**系统能力**:SystemCapability.Communication.NetManager.Core 225 226**参数:** 227 228| 参数名 | 类型 | 必填 | 说明 | 229| --------- | --------------------------------------------------- | ---- | ---------------- | 230| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 231| callback | AsyncCallback\<[NetCapabilities](#netcapabilities)> | 是 | 回调函数。 | 232 233**示例:** 234 235```javascript 236connection.getDefaultNet().then(function (netHandle) { 237 connection.getNetCapabilities(netHandle, function (error, info) { 238 console.log(JSON.stringify(error)) 239 console.log(JSON.stringify(info)) 240 }) 241}) 242``` 243 244## connection.getNetCapabilities 245 246getNetCapabilities(netHandle: NetHandle): Promise\<NetCapabilities> 247 248获取netHandle对应的网络的能力信息,使用Promise方式作为异步方法。 249 250**需要权限**:ohos.permission.GET_NETWORK_INFO 251 252**系统能力**:SystemCapability.Communication.NetManager.Core 253 254**参数:** 255 256| 参数名 | 类型 | 必填 | 说明 | 257| --------- | ----------------------- | ---- | ---------------- | 258| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 259 260**返回值:** 261 262| 类型 | 说明 | 263| --------------------------------------------- | --------------------------------- | 264| Promise\<[NetCapabilities](#netcapabilities)> | 以Promise形式返回网络的能力信息。 | 265 266**示例:** 267 268```javascript 269connection.getDefaultNet().then(function (netHandle) { 270 connection.getNetCapabilities(netHandle).then(function (info) { 271 console.log(JSON.stringify(info)) 272 }) 273}) 274``` 275 276## connection.reportNetConnected 277 278reportNetConnected(netHandle: NetHandle, callback: AsyncCallback<void>): void 279 280报告网络状态已连接,使用callback方式作为异步方法。 281 282**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET 283 284**系统能力**:SystemCapability.Communication.NetManager.Core 285 286**参数:** 287| 参数名 | 类型 | 必填 | 说明 | 288| -------- | -------- | -------- | -------- | 289| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 | 290| callback | AsyncCallback<void> | 是 | 回调函数。 | 291 292**示例:** 293 294``` 295connection.getDefaultNet().then(function (netHandle) { 296 connection.reportNetConnected(netHandle, function (error) { 297 console.log(JSON.stringify(error)) 298 }); 299}); 300``` 301 302 303## connection.reportNetConnected 304 305reportNetConnected(netHandle: NetHandle): Promise<void> 306 307报告网络状态已连接,使用promise方式作为异步方法。 308 309**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET 310 311**系统能力**:SystemCapability.Communication.NetManager.Core 312 313**参数:** 314| 参数名 | 类型 | 必填 | 说明 | 315| -------- | -------- | -------- | -------- | 316| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 | 317 318**返回值:** 319| 类型 | 说明 | 320| -------- | -------- | 321| Promise<void> | 以Promise形式返回执行结果。 | 322 323**示例:** 324 325``` 326connection.getDefaultNet().then(function (netHandle) { 327 connection.reportNetConnected(netHandle).then(function () { 328 console.log(`report success`) 329 }); 330}); 331``` 332 333 334## connection.reportNetDisconnected 335 336reportNetDisconnected(netHandle: NetHandle, callback: AsyncCallback<void>): void 337 338报告网络状态已断开,使用callback方式作为异步方法。 339 340**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET 341 342**系统能力**:SystemCapability.Communication.NetManager.Core 343 344**参数:** 345| 参数名 | 类型 | 必填 | 说明 | 346| -------- | -------- | -------- | -------- | 347| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 | 348| callback | AsyncCallback<void> | 是 | 回调函数。 | 349 350**示例:** 351 352``` 353connection.getDefaultNet().then(function (netHandle) { 354 connection.reportNetDisconnected(netHandle, function (error) { 355 console.log(JSON.stringify(error)) 356 }); 357}); 358``` 359 360 361## connection.reportNetDisconnected 362 363reportNetDisconnected(netHandle: NetHandle): Promise<void> 364 365报告网络状态已断开,使用promise方式作为异步方法。 366 367**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET 368 369**系统能力**:SystemCapability.Communication.NetManager.Core 370 371**参数:** 372| 参数名 | 类型 | 必填 | 说明 | 373| -------- | -------- | -------- | -------- | 374| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 | 375 376**返回值:** 377| 类型 | 说明 | 378| -------- | -------- | 379| Promise<void> | 以Promise形式返回执行结果。 | 380 381**示例:** 382 383``` 384connection.getDefaultNet().then(function (netHandle) { 385 connection.reportNetDisconnected(netHandle).then(function () { 386 console.log(`report success`) 387 }); 388}); 389``` 390 391## connection.getAddressesByName 392 393getAddressesByName(host: string, callback: AsyncCallback\<Array\<NetAddress>>): void 394 395使用默认网络解析主机名以获取所有IP地址,使用callback方式作为异步方法。 396 397**需要权限**:ohos.permission.GET_NETWORK_INFO 398 399**系统能力**:SystemCapability.Communication.NetManager.Core 400 401**参数:** 402 403| 参数名 | 类型 | 必填 | 说明 | 404| -------- | ------------------------------------------------- | ---- | ------------------ | 405| host | string | 是 | 需要解析的主机名。 | 406| callback | AsyncCallback\<Array\<[NetAddress](#netaddress)>> | 是 | 回调函数。 | 407 408**示例:** 409 410``` 411let host = "xxxx"; 412connection.getAddressesByName(host, function (error, addresses) { 413 console.log(JSON.stringify(error)) 414 console.log(JSON.stringify(addresses)) 415}) 416``` 417 418## connection.getAddressesByName 419 420getAddressesByName(host: string): Promise\<Array\<NetAddress>> 421 422使用默认网络解析主机名以获取所有IP地址,使用Promise方式作为异步方法。 423 424**需要权限**:ohos.permission.GET_NETWORK_INFO 425 426**系统能力**:SystemCapability.Communication.NetManager.Core 427 428**参数:** 429 430| 参数名 | 类型 | 必填 | 说明 | 431| ------ | ------ | ---- | ------------------ | 432| host | string | 是 | 需要解析的主机名。 | 433 434**返回值:** 435 436| 类型 | 说明 | 437| ------------------------------------------- | ----------------------------- | 438| Promise\<Array\<[NetAddress](#netaddress)>> | 以Promise形式返回所有IP地址。 | 439 440**示例:** 441 442``` 443let host = "xxxx"; 444connection.getAddressesByName(host).then(function (addresses) { 445 console.log(JSON.stringify(addresses)) 446}) 447``` 448 449## connection.createNetConnection 450 451createNetConnection(netSpecifier?: NetSpecifier, timeout?: number): NetConnection 452 453获取一个netSpecifier指定的网络的句柄。 454 455**系统能力**:SystemCapability.Communication.NetManager.Core 456 457**参数:** 458 459| 参数名 | 类型 | 必填 | 说明 | 460| ------------ | ----------------------------- | ---- | ------------------------------------------------------------ | 461| netSpecifier | [NetSpecifier](#netspecifier) | 否 | 指定网络的各项特征,不指定则关注默认网络。 | 462| timeout | number | 否 | 获取netSpecifier指定的网络时的超时时间,仅netSpecifier存在时生效。 | 463 464**返回值:** 465 466| 类型 | 说明 | 467| ------------------------------- | -------------------- | 468| [NetConnection](#netconnection) | 所关注的网络的句柄。 | 469 470**示例:** 471 472```javascript 473// 关注默认网络 474let netConnection = connection.createNetConnection() 475 476// 关注蜂窝网络 477let netConnectionCellular = connection.createNetConnection({ 478 netCapabilities: { 479 bearerTypes: [NetBearType.BEARER_CELLULAR] 480 } 481}) 482``` 483 484## NetConnection 485 486网络连接的句柄。 487 488### on('netAvailable') 489 490on(type: 'netAvailable', callback: Callback\<NetHandle>): void 491 492订阅网络可用事件。 493 494**系统能力**:SystemCapability.Communication.NetManager.Core 495 496**参数:** 497 498| 参数名 | 类型 | 必填 | 说明 | 499| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ | 500| type | string | 是 | 订阅事件,固定为'netAvailable'。<br>netAvailable:数据网络可用事件。 | 501| callback | Callback\<[NetHandle](#nethandle)> | 是 | 回调函数。 | 502 503**示例:** 504 505```javascript 506netConnection.on('netAvailable', function (data) { 507 console.log(JSON.stringify(data)) 508}) 509``` 510 511### on('netCapabilitiesChange') 512 513on(type: 'netCapabilitiesChange', callback: Callback<{ netHandle: NetHandle, netCap: NetCapabilities }>): void 514 515订阅网络能力变化事件。 516 517**系统能力**:SystemCapability.Communication.NetManager.Core 518 519**参数:** 520 521| 参数名 | 类型 | 必填 | 说明 | 522| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 523| type | string | 是 | 订阅事件,固定为'netCapabilitiesChange'。<br/>netCapabilitiesChange:网络能力变化事件。 | 524| callback | Callback<{ netHandle: [NetHandle](#nethandle), netCap: [NetCapabilities](#netcapabilities) }> | 是 | 回调函数。 | 525 526**示例:** 527 528```javascript 529netConnection.on('netCapabilitiesChange', function (data) { 530 console.log(JSON.stringify(data)) 531}) 532``` 533 534### on('netConnectionPropertiesChange') 535 536on(type: 'netConnectionPropertiesChange', callback: Callback<{ netHandle: NetHandle, connectionProperties: ConnectionProperties }>): void 537 538订阅网络连接信息变化事件。 539 540**系统能力**:SystemCapability.Communication.NetManager.Core 541 542**参数:** 543 544| 参数名 | 类型 | 必填 | 说明 | 545| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 546| type | string | 是 | 订阅事件,固定为'netConnectionPropertiesChange'。<br/>netConnectionPropertiesChange:网络连接信息变化事件。 | 547| callback | Callback<{ netHandle: [NetHandle](#nethandle), connectionProperties: [ConnectionProperties](#connectionproperties) }> | 是 | 回调函数。 | 548 549**示例:** 550 551```javascript 552netConnection.on('netConnectionPropertiesChange', function (data) { 553 console.log(JSON.stringify(data)) 554}) 555``` 556 557### on('netBlockStatusChange') 558 559on(type: 'netBlockStatusChange', callback: Callback<{ netHandle: NetHandle, blocked: boolean }>): void 560 561订阅网络阻塞状态事件,使用callback方式作为异步方法。 562 563**系统能力**:SystemCapability.Communication.NetManager.Core 564 565**参数:** 566 567| 参数名 | 类型 | 必填 | 说明 | 568| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 569| type | string | 是 | 订阅事件,固定为'netBlockStatusChange'。<br/>netBlockStatusChange:网络阻塞状态事件。 | 570| callback | Callback<{ netHandle: [NetHandle](#nethandle), blocked: boolean }> | 是 | 回调函数。 | 571 572**示例:** 573 574```javascript 575netConnection.on('netBlockStatusChange', function (data) { 576 console.log(JSON.stringify(data)) 577}) 578``` 579 580### on('netLost') 581 582on(type: 'netLost', callback: Callback\<NetHandle>): void 583 584订阅网络丢失事件。 585 586**系统能力**:SystemCapability.Communication.NetManager.Core 587 588**参数:** 589 590| 参数名 | 类型 | 必填 | 说明 | 591| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ | 592| type | string | 是 | 订阅事件,固定为'netLost'。<br/>netLost:网络严重中断或正常断开事件。 | 593| callback | Callback\<[NetHandle](#nethandle)> | 是 | 回调函数。 | 594 595**示例:** 596 597```javascript 598let netConnection1 = connection.createNetConnection() 599netConnection1.on('netLost', function (data) { 600 console.log(JSON.stringify(data)) 601}) 602``` 603 604### on('netUnavailable') 605 606on(type: 'netUnavailable', callback: Callback\<void>): void 607 608订阅网络不可用事件。 609 610**系统能力**:SystemCapability.Communication.NetManager.Core 611 612**参数:** 613 614| 参数名 | 类型 | 必填 | 说明 | 615| -------- | --------------- | ---- | ------------------------------------------------------------ | 616| type | string | 是 | 订阅事件,固定为'netUnavailable'。<br/>netUnavailable:网络不可用事件。 | 617| callback | Callback\<void> | 是 | 回调函数。 | 618 619**示例:** 620 621```javascript 622netConnection.on('netUnavailable', function (data) { 623 console.log(JSON.stringify(data)) 624}) 625``` 626 627### register 628 629register(callback: AsyncCallback\<void>): void 630 631订阅指定网络状态变化的通知。 632 633**需要权限**:ohos.permission.GET_NETWORK_INFO 634 635**系统能力**:SystemCapability.Communication.NetManager.Core 636 637**参数:** 638 639| 参数名 | 类型 | 必填 | 说明 | 640| -------- | -------------------- | ---- | ---------- | 641| callback | AsyncCallback\<void> | 是 | 回调函数。 | 642 643**示例:** 644 645```javascript 646netConnection.register(function (error) { 647 console.log(JSON.stringify(error)) 648}) 649``` 650 651### unregister 652 653unregister(callback: AsyncCallback\<void>): void 654 655取消订阅默认网络状态变化的通知。 656 657**系统能力**:SystemCapability.Communication.NetManager.Core 658 659**参数:** 660 661| 参数名 | 类型 | 必填 | 说明 | 662| -------- | -------------------- | ---- | ---------- | 663| callback | AsyncCallback\<void> | 是 | 回调函数。 | 664 665**示例:** 666 667```javascript 668netConnection.unregister(function (error) { 669 console.log(JSON.stringify(error)) 670}) 671``` 672 673## NetHandle 674 675数据网络的句柄。 676 677在调用NetHandle的方法之前,需要先获取NetHandle对象。 678 679**系统能力**:SystemCapability.Communication.NetManager.Core 680 681### 属性 682 683| 参数名 | 类型 | 说明 | 684| ------ | ------ | ------------------------- | 685| netId | number | 网络ID,必须大于等于100。 | 686 687### getAddressesByName 688 689getAddressesByName(host: string, callback: AsyncCallback\<Array\<NetAddress>>): void 690 691使用对应网络解析主机名以获取所有IP地址,使用callback方式作为异步方法。 692 693**需要权限**:ohos.permission.GET_NETWORK_INFO 694 695**系统能力**:SystemCapability.Communication.NetManager.Core 696 697**参数:** 698 699| 参数名 | 类型 | 必填 | 说明 | 700| -------- | ------------------------------------------------- | ---- | ------------------ | 701| host | string | 是 | 需要解析的主机名。 | 702| callback | AsyncCallback\<Array\<[NetAddress](#netaddress)>> | 是 | 回调函数 | 703 704**示例:** 705 706```javascript 707connection.getDefaultNet().then(function (netHandle) { 708 let host = "xxxx"; 709 netHandle.getAddressesByName(host, function (error, addresses) { 710 console.log(JSON.stringify(error)) 711 console.log(JSON.stringify(addresses)) 712 }) 713}) 714``` 715 716### getAddressesByName 717 718getAddressesByName(host: string): Promise\<Array\<NetAddress>> 719 720使用对应网络解析主机名以获取所有IP地址,使用Promise方式作为异步方法。 721 722**需要权限**:ohos.permission.GET_NETWORK_INFO 723 724**系统能力**:SystemCapability.Communication.NetManager.Core 725 726**参数:** 727 728| 参数名 | 类型 | 必填 | 说明 | 729| ------ | ------ | ---- | ------------------ | 730| host | string | 是 | 需要解析的主机名。 | 731 732**返回值:** 733 734| 类型 | 说明 | 735| ------------------------------------------- | ----------------------------- | 736| Promise\<Array\<[NetAddress](#netaddress)>> | 以Promise形式返回所有IP地址。 | 737 738**示例:** 739 740```javascript 741connection.getDefaultNet().then(function (netHandle) { 742 let host = "xxxx"; 743 netHandle.getAddressesByName(host).then(function (addresses) { 744 console.log(JSON.stringify(addresses)) 745 }) 746}) 747``` 748 749### getAddressByName 750 751getAddressByName(host: string, callback: AsyncCallback\<NetAddress>): void 752 753使用对应网络解析主机名以获取第一个IP地址,使用callback方式作为异步方法。 754 755**需要权限**:ohos.permission.GET_NETWORK_INFO 756 757**系统能力**:SystemCapability.Communication.NetManager.Core 758 759**参数:** 760 761| 参数名 | 类型 | 必填 | 说明 | 762| -------- | ----------------------------------------- | ---- | ------------------ | 763| host | string | 是 | 需要解析的主机名。 | 764| callback | AsyncCallback\<[NetAddress](#netaddress)> | 是 | 回调函数。 | 765 766**示例:** 767 768```javascript 769connection.getDefaultNet().then(function (netHandle) { 770 let host = "xxxx"; 771 netHandle.getAddressByName(host, function (error, address) { 772 console.log(JSON.stringify(error)) 773 console.log(JSON.stringify(address)) 774 }) 775}) 776``` 777 778### getAddressByName 779 780getAddressByName(host: string): Promise\<NetAddress> 781 782使用对应网络解析主机名以获取第一个IP地址,使用Promise方式作为异步方法。 783 784**需要权限**:ohos.permission.GET_NETWORK_INFO 785 786**系统能力**:SystemCapability.Communication.NetManager.Core 787 788**参数:** 789 790| 参数名 | 类型 | 必填 | 说明 | 791| ------ | ------ | ---- | ------------------ | 792| host | string | 是 | 需要解析的主机名。 | 793 794**返回值:** 795 796| 类型 | 说明 | 797| ----------------------------------- | ------------------------------- | 798| Promise\<[NetAddress](#netaddress)> | 以Promise形式返回第一个IP地址。 | 799 800**示例:** 801 802```javascript 803connection.getDefaultNet().then(function (netHandle) { 804 let host = "xxxx"; 805 netHandle.getAddressByName(host).then(function (address) { 806 console.log(JSON.stringify(address)) 807 }) 808}) 809``` 810 811## NetSpecifier 812 813提供承载数据网络能力的实例。 814 815**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。 816 817| 参数名 | 类型 | 说明 | 818| ----------------------- | ----------------------------------- | ------------------------------------------------------------ | 819| netCapabilities | [NetCapabilities](#netcapabilities) | 存储数据网络的传输能力和承载类型。 | 820| bearerPrivateIdentifier | string | 网络标识符,WIFI网络的标识符是"wifi",蜂窝网络的标识符是"slot0"(对应SIM卡1)。 | 821 822## NetCapabilities 823 824网络的能力集。 825 826**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。 827 828| 参数名 | 类型 | 说明 | 829| --------------------- | ---------------------------------- | ------------------------ | 830| linkUpBandwidthKbps | number | 上行(设备到网络)带宽。 | 831| linkDownBandwidthKbps | number | 下行(网络到设备)带宽。 | 832| networkCap | Array<[NetCap](#netcap)> | 网络具体能力。 | 833| bearerTypes | Array<[NetBearType](#netbeartype)> | 网络类型。 | 834 835## NetCap 836 837网络具体能力。 838 839**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。 840 841| 参数名 | 值 | 说明 | 842| ------------------------ | ---- | ---------------------- | 843| NET_CAPABILITY_MMS | 0 | 表示网络可以访问运营商的MMSC(Multimedia Message Service,多媒体短信服务)发送和接收彩信。 | 844| NET_CAPABILITY_NOT_METERED | 11 | 表示网络流量未被计费。 | 845| NET_CAPABILITY_INTERNET | 12 | 网络可以访问Internet。 | 846| NET_CAPABILITY_NOT_VPN | 15 | 表示网络不使用VPN(Virtual Private Network,虚拟专用网络)。 | 847| NET_CAPABILITY_VALIDATED | 16 | 网络可用。 | 848 849## NetBearType 850 851网络类型。 852 853**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。 854 855| 名称 | 值 | 说明 | 856| --------------- | ---- | ----------- | 857| BEARER_CELLULAR | 0 | 蜂窝网络。 | 858| BEARER_WIFI | 1 | Wi-Fi网络。 | 859| BEARER_ETHERNET | 3 | 以太网网络。 | 860 861## ConnectionProperties 862 863网络连接信息。 864 865**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。 866 867| 参数名 | 类型 | 说明 | 868| ------------- | ---------------------------------- | ---------------- | 869| interfaceName | string | 网卡名称。 | 870| domains | string | 所属域,默认""。 | 871| linkAddresses | Array<[LinkAddress](#linkaddress)> | 链路信息。 | 872| routes | Array<[RouteInfo](#routeinfo)> | 路由信息。 | 873| dnses | Array<[NetAddress](#netaddress)> | 网络地址,参考[NetAddress](#netaddress)。 | 874| mtu | number | 最大传输单元。 | 875 876## LinkAddress 877 878网络链路信息。 879 880**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。 881 882| 参数名 | 类型 | 说明 | 883| ------------ | ------------------------- | -------------------- | 884| address | [NetAddress](#netaddress) | 链路地址。 | 885| prefixLength | number | 链路地址前缀的长度。 | 886 887## RouteInfo 888 889网络路由信息。 890 891**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。 892 893| 参数名 | 类型 | 说明 | 894| -------------- | --------------------------- | ---------------- | 895| interface | string | 网卡名称。 | 896| destination | [LinkAddress](#linkaddress) | 目的地址。 | 897| gateway | [NetAddress](#netaddress) | 网关地址。 | 898| hasGateway | boolean | 是否有网关。 | 899| isDefaultRoute | boolean | 是否为默认路由。 | 900 901## NetAddress 902 903网络地址。 904 905**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。 906 907| 参数名 | 类型 | 说明 | 908| ------- | ------ | ------------------------------ | 909| address | string | 地址。 | 910| family | number | IPv4 = 1,IPv6 = 2,默认IPv4。 | 911| port | number | 端口,取值范围\[0, 65535]。 |