• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&lt;Array&lt;NetHandle&gt;&gt;): void
111
112获取全部激活的数据网络列表,使用callback方式作为异步方法。
113
114**需要权限**:ohos.permission.GET_NETWORK_INFO
115
116**系统能力**:SystemCapability.Communication.NetManager.Core
117
118**参数:**
119| 参数名 | 类型 | 必填 | 说明 |
120| -------- | -------- | -------- | -------- |
121| callback | AsyncCallback&lt;Array&lt;[NetHandle](#nethandle)&gt;&gt; | 是 | 回调函数。 |
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&lt;Array&lt;NetHandle&gt;&gt;
136
137获取全部激活的数据网络列表,使用promise方式作为异步方法。
138
139**需要权限**:ohos.permission.GET_NETWORK_INFO
140
141**系统能力**:SystemCapability.Communication.NetManager.Core
142
143**返回值:**
144| 类型 | 说明 |
145| -------- | -------- |
146| Promise&lt;Array&lt;[NetHandle](#nethandle)&gt;&gt; | 以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&lt;void&gt;): void
279
280报告网络状态已连接,使用callback方式作为异步方法。
281
282**需要权限**:ohos.permission.GET_NETWORK_INFOohos.permission.INTERNET
283
284**系统能力**:SystemCapability.Communication.NetManager.Core
285
286**参数:**
287| 参数名 | 类型 | 必填 | 说明 |
288| -------- | -------- | -------- | -------- |
289| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 |
290| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
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&lt;void&gt;
306
307报告网络状态已连接,使用promise方式作为异步方法。
308
309**需要权限**:ohos.permission.GET_NETWORK_INFOohos.permission.INTERNET
310
311**系统能力**:SystemCapability.Communication.NetManager.Core
312
313**参数:**
314| 参数名 | 类型 | 必填 | 说明 |
315| -------- | -------- | -------- | -------- |
316| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 |
317
318**返回值:**
319| 类型 | 说明 |
320| -------- | -------- |
321| Promise&lt;void&gt; | 以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&lt;void&gt;): void
337
338报告网络状态已断开,使用callback方式作为异步方法。
339
340**需要权限**:ohos.permission.GET_NETWORK_INFOohos.permission.INTERNET
341
342**系统能力**:SystemCapability.Communication.NetManager.Core
343
344**参数:**
345| 参数名 | 类型 | 必填 | 说明 |
346| -------- | -------- | -------- | -------- |
347| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 |
348| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
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&lt;void&gt;
364
365报告网络状态已断开,使用promise方式作为异步方法。
366
367**需要权限**:ohos.permission.GET_NETWORK_INFOohos.permission.INTERNET
368
369**系统能力**:SystemCapability.Communication.NetManager.Core
370
371**参数:**
372| 参数名 | 类型 | 必填 | 说明 |
373| -------- | -------- | -------- | -------- |
374| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 |
375
376**返回值:**
377| 类型 | 说明 |
378| -------- | -------- |
379| Promise&lt;void&gt; | 以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&lt;{ netHandle: NetHandle, blocked: boolean }&gt;): void
560
561订阅网络阻塞状态事件,使用callback方式作为异步方法。
562
563**系统能力**:SystemCapability.Communication.NetManager.Core
564
565**参数:**
566
567| 参数名   | 类型                                                         | 必填 | 说明                                                         |
568| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
569| type     | string                                                       | 是   | 订阅事件,固定为'netBlockStatusChange'。<br/>netBlockStatusChange:网络阻塞状态事件。 |
570| callback | Callback&lt;{&nbsp;netHandle:&nbsp;[NetHandle](#nethandle),&nbsp;blocked:&nbsp;boolean&nbsp;}&gt; | 是   | 回调函数。                                                   |
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.Core816
817| 参数名                  | 类型                                | 说明                                                         |
818| ----------------------- | ----------------------------------- | ------------------------------------------------------------ |
819| netCapabilities         | [NetCapabilities](#netcapabilities) | 存储数据网络的传输能力和承载类型。                           |
820| bearerPrivateIdentifier | string                              | 网络标识符,WIFI网络的标识符是"wifi",蜂窝网络的标识符是"slot0"(对应SIM卡1)。 |
821
822## NetCapabilities
823
824网络的能力集。
825
826**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core827
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.Core840
841| 参数名                  | 值   | 说明                   |
842| ------------------------ | ---- | ---------------------- |
843| NET_CAPABILITY_MMS | 0 | 表示网络可以访问运营商的MMSC(Multimedia&nbsp;Message&nbsp;Service,多媒体短信服务)发送和接收彩信。 |
844| NET_CAPABILITY_NOT_METERED | 11 | 表示网络流量未被计费。 |
845| NET_CAPABILITY_INTERNET  | 12   | 网络可以访问Internet。 |
846| NET_CAPABILITY_NOT_VPN | 15 | 表示网络不使用VPN(Virtual&nbsp;Private&nbsp;Network,虚拟专用网络)。 |
847| NET_CAPABILITY_VALIDATED | 16   | 网络可用。             |
848
849## NetBearType
850
851网络类型。
852
853**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core854
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.Core866
867| 参数名       | 类型                               | 说明             |
868| ------------- | ---------------------------------- | ---------------- |
869| interfaceName | string                             | 网卡名称。       |
870| domains       | string                             | 所属域,默认""。 |
871| linkAddresses | Array<[LinkAddress](#linkaddress)> | 链路信息。       |
872| routes        | Array<[RouteInfo](#routeinfo)>     | 路由信息。       |
873| dnses | Array&lt;[NetAddress](#netaddress)&gt; | 网络地址,参考[NetAddress](#netaddress)。 |
874| mtu           | number                             | 最大传输单元。   |
875
876## LinkAddress
877
878网络链路信息。
879
880**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core881
882| 参数名       | 类型                      | 说明                 |
883| ------------ | ------------------------- | -------------------- |
884| address      | [NetAddress](#netaddress) | 链路地址。           |
885| prefixLength | number                    | 链路地址前缀的长度。 |
886
887## RouteInfo
888
889网络路由信息。
890
891**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core892
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.Core906
907| 参数名  | 类型   | 说明                           |
908| ------- | ------ | ------------------------------ |
909| address | string | 地址。                         |
910| family  | number | IPv4 = 1,IPv6 = 2,默认IPv4。 |
911| port    | number | 端口,取值范围\[0, 65535]。    |