• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&lt;Array&lt;NetHandle&gt;&gt;): 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&lt;Array&lt;[NetHandle](#nethandle)&gt;&gt; | 是 | 回调函数。当成功获取所有处于连接状态的网络列表时,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&lt;Array&lt;NetHandle&gt;&gt;
323
324获取所有处于连接状态的网络列表,使用Promise方式作为异步方法。
325
326**需要权限**:ohos.permission.GET_NETWORK_INFO
327
328**系统能力**:SystemCapability.Communication.NetManager.Core
329
330**返回值:**
331
332| 类型 | 说明 |
333| -------- | -------- |
334| Promise&lt;Array&lt;[NetHandle](#nethandle)&gt;&gt; | 以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&lt;void&gt;): void
777
778向网络管理报告网络处于可用状态,使用callback方式作为异步方法。
779
780**需要权限**:ohos.permission.GET_NETWORK_INFOohos.permission.INTERNET
781
782**系统能力**:SystemCapability.Communication.NetManager.Core
783
784**参数:**
785
786| 参数名 | 类型 | 必填 | 说明 |
787| -------- | -------- | -------- | -------- |
788| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 |
789| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当向网络管理报告网络处于可用状态成功,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&lt;void&gt;
814
815向网络管理报告网络处于可用状态,使用Promise方式作为异步方法。
816
817**需要权限**:ohos.permission.GET_NETWORK_INFOohos.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&lt;void&gt; | 无返回值的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&lt;void&gt;): void
855
856向网络管理报告网络处于不可用状态,使用callback方式作为异步方法。
857
858**需要权限**:ohos.permission.GET_NETWORK_INFOohos.permission.INTERNET
859
860**系统能力**:SystemCapability.Communication.NetManager.Core
861
862**参数:**
863
864| 参数名 | 类型 | 必填 | 说明 |
865| -------- | -------- | -------- | -------- |
866| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 |
867| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当向网络管理报告网络处于不可用状态成功,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&lt;void&gt;
892
893向网络管理报告网络处于不可用状态,使用Promise方式作为异步方法。
894
895**需要权限**:ohos.permission.GET_NETWORK_INFOohos.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&lt;void&gt; | 无返回值的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&lt;{ netHandle: NetHandle, blocked: boolean }&gt;): 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&lt;{&nbsp;netHandle:&nbsp;[NetHandle](#nethandle),&nbsp;blocked:&nbsp;boolean&nbsp;}&gt; | 是   | 回调函数,返回数据网络句柄(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&nbsp;Message&nbsp;Service,多媒体短信服务)发送和接收彩信。 |
1651| NET_CAPABILITY_NOT_METERED | 11 | 表示网络流量未被计费。 |
1652| NET_CAPABILITY_INTERNET  | 12   | 表示该网络应具有访问Internet的能力,该能力由网络提供者设置。 |
1653| NET_CAPABILITY_NOT_VPN | 15 | 表示网络不使用VPN(Virtual&nbsp;Private&nbsp;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