js-apis-net-connection.md 32.9 KB
Newer Older
Z
zengyawen 已提交
1
# 网络连接管理
2

C
clevercong 已提交
3
网络连接管理提供管理网络一些基础能力,包括获取默认激活的数据网络、获取所有激活数据网络列表、开启关闭飞行模式、获取网络能力信息等功能。
C
clevercong 已提交
4

5 6
> **说明:**
>
Z
zengyawen 已提交
7
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8 9 10

## 导入模块

Z
zengyawen 已提交
11
```js
12 13 14 15 16 17 18
import connection from '@ohos.net.connection'
```

## connection.getDefaultNet

getDefaultNet(callback: AsyncCallback\<NetHandle>): void

Z
zengyawen 已提交
19
获取默认激活的数据网络,使用callback方式作为异步方法。
20 21 22 23 24 25 26

**需要权限**:ohos.permission.GET_NETWORK_INFO

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
27 28 29
| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| callback | AsyncCallback\<[NetHandle](#nethandle)> | 是   | 回调函数。 |
30 31 32

**示例:**

Z
zengyawen 已提交
33
```js
34 35 36 37 38 39 40 41 42 43
connection.getDefaultNet(function (error, netHandle) {
    console.log(JSON.stringify(error))
    console.log(JSON.stringify(netHandle))
})
```

## connection.getDefaultNet

getDefaultNet(): Promise\<NetHandle>

Z
zengyawen 已提交
44
获取默认激活的数据网络,使用Promise方式作为异步方法。
45 46 47 48 49 50 51

**需要权限**:ohos.permission.GET_NETWORK_INFO

**系统能力**:SystemCapability.Communication.NetManager.Core

**返回值:**

Z
zengyawen 已提交
52 53 54
| 类型                              | 说明                                  |
| --------------------------------- | ------------------------------------- |
| Promise\<[NetHandle](#nethandle)> | 以Promise形式返回默认激活的数据网络。 |
55 56 57

**示例:**

Z
zengyawen 已提交
58
```js
59 60 61 62 63 64 65 66 67
connection.getDefaultNet().then(function (netHandle) {
    console.log(JSON.stringify(netHandle))
})
```

## connection.hasDefaultNet

hasDefaultNet(callback: AsyncCallback\<boolean>): void

Z
zengyawen 已提交
68
检查默认数据网络是否被激活,使用callback方式作为异步方法。
69 70 71 72 73

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
74 75 76
| 参数名   | 类型                    | 必填 | 说明                                   |
| -------- | ----------------------- | ---- | -------------------------------------- |
| callback | AsyncCallback\<boolean> | 是   | 回调函数,默认数据网络被激活返回true。 |
77 78 79

**示例:**

Z
zengyawen 已提交
80
```js
81 82
connection.hasDefaultNet(function (error, has) {
    console.log(JSON.stringify(error))
C
clevercong 已提交
83
    console.log('has: ' + has)
84 85 86 87 88 89 90
})
```

## connection.hasDefaultNet

hasDefaultNet(): Promise\<boolean>

Z
zengyawen 已提交
91
检查默认数据网络是否被激活,使用Promise方式作为异步方法。
92 93 94 95 96

**系统能力**:SystemCapability.Communication.NetManager.Core

**返回值:**

Z
zengyawen 已提交
97 98 99
| 类型              | 说明                                            |
| ----------------- | ----------------------------------------------- |
| Promise\<boolean> | 以Promise形式返回,默认数据网络被激活返回true。 |
100 101 102

**示例:**

Z
zengyawen 已提交
103
```js
104
connection.hasDefaultNet().then(function (has) {
C
clevercong 已提交
105
    console.log('has: ' + has)
106 107 108
})
```

C
clevercong 已提交
109 110 111 112 113 114
## connection.getAllNets

getAllNets(callback: AsyncCallback&lt;Array&lt;NetHandle&gt;&gt;): void

获取全部激活的数据网络列表,使用callback方式作为异步方法。

C
clevercong 已提交
115 116 117
**需要权限**:ohos.permission.GET_NETWORK_INFO

**系统能力**:SystemCapability.Communication.NetManager.Core
C
clevercong 已提交
118 119

**参数:**
120

C
clevercong 已提交
121 122 123 124 125 126
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;Array&lt;[NetHandle](#nethandle)&gt;&gt; | 是 | 回调函数。 |

**示例:**

Z
zengyawen 已提交
127
```js
C
clevercong 已提交
128 129 130 131 132 133 134 135 136 137 138 139 140
connection.getAllNets(function (error, nets) {
    console.log(JSON.stringify(error))
    console.log(JSON.stringify(nets))
});
```


## connection.getAllNets

getAllNets(): Promise&lt;Array&lt;NetHandle&gt;&gt;

获取全部激活的数据网络列表,使用promise方式作为异步方法。

C
clevercong 已提交
141 142 143
**需要权限**:ohos.permission.GET_NETWORK_INFO

**系统能力**:SystemCapability.Communication.NetManager.Core
C
clevercong 已提交
144 145

**返回值:**
146

C
clevercong 已提交
147 148 149 150 151 152
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;Array&lt;[NetHandle](#nethandle)&gt;&gt; | 以Promise形式返回激活的数据网络列表。 |

**示例:**

Z
zengyawen 已提交
153
```js
C
clevercong 已提交
154 155 156 157 158
connection.getAllNets().then(function (nets) {
    console.log(JSON.stringify(nets))
});
```

159 160 161 162
## connection.getConnectionProperties

getConnectionProperties(netHandle: NetHandle, callback: AsyncCallback\<ConnectionProperties>): void

Z
zengyawen 已提交
163
获取netHandle对应的网络的连接信息,使用callback方式作为异步方法。
164 165 166 167 168 169 170

**需要权限**:ohos.permission.GET_NETWORK_INFO

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
171 172 173 174
| 参数名    | 类型                                                         | 必填 | 说明             |
| --------- | ------------------------------------------------------------ | ---- | ---------------- |
| netHandle | [NetHandle](#nethandle)                                      | 是   | 数据网络的句柄。 |
| callback  | AsyncCallback\<[ConnectionProperties](#connectionproperties)> | 是   | 回调函数。       |
175 176 177

**示例:**

Z
zengyawen 已提交
178
```js
179 180 181 182 183 184 185 186 187 188 189 190
connection.getDefaultNet().then(function (netHandle) {
    connection.getConnectionProperties(netHandle, function (error, info) {
        console.log(JSON.stringify(error))
        console.log(JSON.stringify(info))
    })
})
```

## connection.getConnectionProperties

getConnectionProperties(netHandle: NetHandle): Promise\<ConnectionProperties>

Z
zengyawen 已提交
191
获取netHandle对应的网络的连接信息,使用Promise方式作为异步方法。
192 193 194 195 196 197 198

**需要权限**:ohos.permission.GET_NETWORK_INFO

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
199 200 201
| 参数名    | 类型                    | 必填 | 说明             |
| --------- | ----------------------- | ---- | ---------------- |
| netHandle | [NetHandle](#nethandle) | 是   | 数据网络的句柄。 |
202 203 204

**返回值:**

Z
zengyawen 已提交
205 206 207
| 类型                                                    | 说明                              |
| ------------------------------------------------------- | --------------------------------- |
| Promise\<[ConnectionProperties](#connectionproperties)> | 以Promise形式返回网络的连接信息。 |
208 209 210

**示例:**

Z
zengyawen 已提交
211
```js
212 213 214 215 216 217 218 219 220 221 222
connection.getDefaultNet().then(function (netHandle) {
    connection.getConnectionProperties(netHandle).then(function (info) {
        console.log(JSON.stringify(info))
    })
})
```

## connection.getNetCapabilities

getNetCapabilities(netHandle: NetHandle, callback: AsyncCallback\<NetCapabilities>): void

Z
zengyawen 已提交
223
获取netHandle对应的网络的能力信息,使用callback方式作为异步方法。
224 225 226 227 228 229 230

**需要权限**:ohos.permission.GET_NETWORK_INFO

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
231 232 233 234
| 参数名    | 类型                                                | 必填 | 说明             |
| --------- | --------------------------------------------------- | ---- | ---------------- |
| netHandle | [NetHandle](#nethandle)                             | 是   | 数据网络的句柄。 |
| callback  | AsyncCallback\<[NetCapabilities](#netcapabilities)> | 是   | 回调函数。       |
235 236 237

**示例:**

Z
zengyawen 已提交
238
```js
239 240 241 242 243 244 245 246 247 248 249 250
connection.getDefaultNet().then(function (netHandle) {
    connection.getNetCapabilities(netHandle, function (error, info) {
        console.log(JSON.stringify(error))
        console.log(JSON.stringify(info))
    })
})
```

## connection.getNetCapabilities

getNetCapabilities(netHandle: NetHandle): Promise\<NetCapabilities>

Z
zengyawen 已提交
251
获取netHandle对应的网络的能力信息,使用Promise方式作为异步方法。
252 253 254 255 256 257 258

**需要权限**:ohos.permission.GET_NETWORK_INFO

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
259 260 261
| 参数名    | 类型                    | 必填 | 说明             |
| --------- | ----------------------- | ---- | ---------------- |
| netHandle | [NetHandle](#nethandle) | 是   | 数据网络的句柄。 |
262 263 264

**返回值:**

Z
zengyawen 已提交
265 266 267
| 类型                                          | 说明                              |
| --------------------------------------------- | --------------------------------- |
| Promise\<[NetCapabilities](#netcapabilities)> | 以Promise形式返回网络的能力信息。 |
268 269 270

**示例:**

Z
zengyawen 已提交
271
```js
272 273 274 275 276 277 278
connection.getDefaultNet().then(function (netHandle) {
    connection.getNetCapabilities(netHandle).then(function (info) {
        console.log(JSON.stringify(info))
    })
})
```

C
clevercong 已提交
279 280 281 282 283 284
## connection.reportNetConnected

reportNetConnected(netHandle: NetHandle, callback: AsyncCallback&lt;void&gt;): void

报告网络状态已连接,使用callback方式作为异步方法。

C
clevercong 已提交
285 286 287
**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET

**系统能力**:SystemCapability.Communication.NetManager.Core
C
clevercong 已提交
288 289

**参数:**
290

C
clevercong 已提交
291 292 293 294 295 296 297
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

**示例:**

Z
zengyawen 已提交
298
```js
C
clevercong 已提交
299 300 301 302 303 304 305 306 307 308 309 310 311 312
connection.getDefaultNet().then(function (netHandle) {
    connection.reportNetConnected(netHandle, function (error) {
        console.log(JSON.stringify(error))
    });
});
```


## connection.reportNetConnected

reportNetConnected(netHandle: NetHandle): Promise&lt;void&gt;

报告网络状态已连接,使用promise方式作为异步方法。

C
clevercong 已提交
313 314 315
**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET

**系统能力**:SystemCapability.Communication.NetManager.Core
C
clevercong 已提交
316 317

**参数:**
318

C
clevercong 已提交
319 320 321 322 323 324 325 326 327 328 329
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 |

**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 以Promise形式返回执行结果。 |

**示例:**

Z
zengyawen 已提交
330
```js
C
clevercong 已提交
331 332 333 334 335 336 337 338 339 340 341 342 343 344
connection.getDefaultNet().then(function (netHandle) {
    connection.reportNetConnected(netHandle).then(function () {
        console.log(`report success`)
    });
});
```


## connection.reportNetDisconnected

reportNetDisconnected(netHandle: NetHandle, callback: AsyncCallback&lt;void&gt;): void

报告网络状态已断开,使用callback方式作为异步方法。

C
clevercong 已提交
345 346 347
**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET

**系统能力**:SystemCapability.Communication.NetManager.Core
C
clevercong 已提交
348 349

**参数:**
350

C
clevercong 已提交
351 352 353 354 355 356 357
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

**示例:**

Z
zengyawen 已提交
358
```js
C
clevercong 已提交
359 360 361 362 363 364 365 366 367 368 369 370 371 372
connection.getDefaultNet().then(function (netHandle) {
    connection.reportNetDisconnected(netHandle, function (error) {
        console.log(JSON.stringify(error))
    });
});
```


## connection.reportNetDisconnected

reportNetDisconnected(netHandle: NetHandle): Promise&lt;void&gt;

报告网络状态已断开,使用promise方式作为异步方法。

C
clevercong 已提交
373 374 375
**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET

**系统能力**:SystemCapability.Communication.NetManager.Core
C
clevercong 已提交
376 377

**参数:**
378

C
clevercong 已提交
379 380 381 382 383 384 385 386 387 388 389
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 |

**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 以Promise形式返回执行结果。 |

**示例:**

Z
zengyawen 已提交
390
```js
C
clevercong 已提交
391 392 393 394 395 396 397
connection.getDefaultNet().then(function (netHandle) {
    connection.reportNetDisconnected(netHandle).then(function () {
        console.log(`report success`)
    });
});
```

398 399 400 401
## connection.getAddressesByName

getAddressesByName(host: string, callback: AsyncCallback\<Array\<NetAddress>>): void

Z
zengyawen 已提交
402
使用默认网络解析主机名以获取所有IP地址,使用callback方式作为异步方法。
403 404 405 406 407 408 409

**需要权限**:ohos.permission.GET_NETWORK_INFO

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
410 411 412 413
| 参数名   | 类型                                              | 必填 | 说明               |
| -------- | ------------------------------------------------- | ---- | ------------------ |
| host     | string                                            | 是   | 需要解析的主机名。 |
| callback | AsyncCallback\<Array\<[NetAddress](#netaddress)>> | 是   | 回调函数。         |
414 415 416

**示例:**

Z
zengyawen 已提交
417
```js
C
clevercong 已提交
418 419 420 421
let host = "xxxx";
connection.getAddressesByName(host, function (error, addresses) {
    console.log(JSON.stringify(error))
    console.log(JSON.stringify(addresses))
422 423 424 425 426
})
```

## connection.getAddressesByName

C
clevercong 已提交
427
getAddressesByName(host: string): Promise\<Array\<NetAddress>>
428

Z
zengyawen 已提交
429
使用默认网络解析主机名以获取所有IP地址,使用Promise方式作为异步方法。
430 431 432 433 434 435 436

**需要权限**:ohos.permission.GET_NETWORK_INFO

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
437 438 439
| 参数名 | 类型   | 必填 | 说明               |
| ------ | ------ | ---- | ------------------ |
| host   | string | 是   | 需要解析的主机名。 |
440 441 442

**返回值:**

Z
zengyawen 已提交
443 444 445
| 类型                                        | 说明                          |
| ------------------------------------------- | ----------------------------- |
| Promise\<Array\<[NetAddress](#netaddress)>> | 以Promise形式返回所有IP地址。 |
446 447 448

**示例:**

Z
zengyawen 已提交
449
```js
C
clevercong 已提交
450 451 452
let host = "xxxx";
connection.getAddressesByName(host).then(function (addresses) {
    console.log(JSON.stringify(addresses))
453 454 455
})
```

C
clevercong 已提交
456 457 458 459 460 461 462

## connection.enableAirplaneMode

enableAirplaneMode(callback: AsyncCallback\<void>): void

开启飞行模式,使用callback方式作为异步方法。

C
clevercong 已提交
463 464
该接口为系统接口。

C
clevercong 已提交
465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486
**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

| 参数名   | 类型                                              | 必填 | 说明               |
| -------- | ------------------------------------------------- | ---- | ------------------ |
| callback | AsyncCallback\<void> | 是   | 回调函数。         |

**示例:**

```js
connection.enableAirplaneMode(function (error) {
    console.log(JSON.stringify(error))
})
```

## connection.enableAirplaneMode

enableAirplaneMode(): Promise\<void>

开启飞行模式,使用Promise方式作为异步方法。

C
clevercong 已提交
487 488
该接口为系统接口。

C
clevercong 已提交
489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511
**系统能力**:SystemCapability.Communication.NetManager.Core

**返回值:**

| 类型                                        | 说明                          |
| ------------------------------------------- | ----------------------------- |
| Promise\<void> | 以Promise形式返回结果。 |

**示例:**

```js
connection.enableAirplaneMode().then(function (error) {
    console.log(JSON.stringify(error))
})
```


## connection.disableAirplaneMode

disableAirplaneMode(callback: AsyncCallback\<void>): void

关闭飞行模式,使用callback方式作为异步方法。

C
clevercong 已提交
512 513
该接口为系统接口。

C
clevercong 已提交
514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535
**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

| 参数名   | 类型                                              | 必填 | 说明               |
| -------- | ------------------------------------------------- | ---- | ------------------ |
| callback | AsyncCallback\<void> | 是   | 回调函数。         |

**示例:**

```js
connection.disableAirplaneMode(function (error) {
    console.log(JSON.stringify(error))
})
```

## connection.disableAirplaneMode

disableAirplaneMode(): Promise\<void>

关闭飞行模式,使用Promise方式作为异步方法。

C
clevercong 已提交
536 537
该接口为系统接口。

C
clevercong 已提交
538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554
**系统能力**:SystemCapability.Communication.NetManager.Core

**返回值:**

| 类型                                        | 说明                          |
| ------------------------------------------- | ----------------------------- |
| Promise\<void> | 以Promise形式返回结果。 |

**示例:**

```js
connection.disableAirplaneMode().then(function (error) {
    console.log(JSON.stringify(error))
})
```


555 556 557 558
## connection.createNetConnection

createNetConnection(netSpecifier?: NetSpecifier, timeout?: number): NetConnection

M
maosiping 已提交
559
获取一个netSpecifier指定的网络的句柄。
560 561 562 563 564

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
565 566 567 568
| 参数名       | 类型                          | 必填 | 说明                                                         |
| ------------ | ----------------------------- | ---- | ------------------------------------------------------------ |
| netSpecifier | [NetSpecifier](#netspecifier) | 否   | 指定网络的各项特征,不指定则关注默认网络。                   |
| timeout      | number                        | 否   | 获取netSpecifier指定的网络时的超时时间,仅netSpecifier存在时生效。 |
569 570 571

**返回值:**

Z
zengyawen 已提交
572 573 574
| 类型                            | 说明                 |
| ------------------------------- | -------------------- |
| [NetConnection](#netconnection) | 所关注的网络的句柄。 |
575 576 577

**示例:**

Z
zengyawen 已提交
578
```js
579
// 关注默认网络
C
clevercong 已提交
580
let netConnection = connection.createNetConnection()
581 582

// 关注蜂窝网络
C
clevercong 已提交
583
let netConnectionCellular = connection.createNetConnection({
584
    netCapabilities: {
C
clevercong 已提交
585
        bearerTypes: [connection.NetBearType.BEARER_CELLULAR]
586 587 588 589
    }
})
```

M
maosiping 已提交
590
## NetConnection
591

Z
zengyawen 已提交
592
网络连接的句柄。
593

M
maosiping 已提交
594
### on('netAvailable')
595 596 597

on(type: 'netAvailable', callback: Callback\<NetHandle>): void

C
clevercong 已提交
598
订阅网络可用事件。
599 600 601 602 603

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
604 605
| 参数名   | 类型                               | 必填 | 说明                                                         |
| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
C
clevercong 已提交
606
| type     | string                             | 是   | 订阅事件,固定为'netAvailable'。<br>netAvailable:数据网络可用事件。 |
Z
zengyawen 已提交
607
| callback | Callback\<[NetHandle](#nethandle)> | 是   | 回调函数。                                                   |
608 609 610

**示例:**

Z
zengyawen 已提交
611
```js
C
clevercong 已提交
612
netConnection.on('netAvailable', function (data) {
613 614 615 616
    console.log(JSON.stringify(data))
})
```

M
maosiping 已提交
617
### on('netCapabilitiesChange')
618 619 620

on(type: 'netCapabilitiesChange', callback: Callback<{ netHandle: NetHandle, netCap: NetCapabilities }>): void

C
clevercong 已提交
621
订阅网络能力变化事件。
622 623 624 625 626

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
627 628
| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
C
clevercong 已提交
629
| type     | string                                                       | 是   | 订阅事件,固定为'netCapabilitiesChange'。<br/>netCapabilitiesChange:网络能力变化事件。 |
Z
zengyawen 已提交
630
| callback | Callback<{ netHandle: [NetHandle](#nethandle), netCap: [NetCapabilities](#netcapabilities) }> | 是   | 回调函数。                                                   |
631 632 633

**示例:**

Z
zengyawen 已提交
634
```js
C
clevercong 已提交
635
netConnection.on('netCapabilitiesChange', function (data) {
636 637 638 639
    console.log(JSON.stringify(data))
})
```

M
maosiping 已提交
640
### on('netConnectionPropertiesChange')
641 642 643

on(type: 'netConnectionPropertiesChange', callback: Callback<{ netHandle: NetHandle, connectionProperties: ConnectionProperties }>): void

C
clevercong 已提交
644
订阅网络连接信息变化事件。
645 646 647 648 649

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
650 651
| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
C
clevercong 已提交
652
| type     | string                                                       | 是   | 订阅事件,固定为'netConnectionPropertiesChange'。<br/>netConnectionPropertiesChange:网络连接信息变化事件。 |
Z
zengyawen 已提交
653
| callback | Callback<{ netHandle: [NetHandle](#nethandle), connectionProperties: [ConnectionProperties](#connectionproperties) }> | 是   | 回调函数。                                                   |
654 655 656

**示例:**

Z
zengyawen 已提交
657
```js
C
clevercong 已提交
658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679
netConnection.on('netConnectionPropertiesChange', function (data) {
    console.log(JSON.stringify(data))
})
```

### on('netBlockStatusChange')

on(type: 'netBlockStatusChange', callback: Callback&lt;{ netHandle: NetHandle, blocked: boolean }&gt;): void

订阅网络阻塞状态事件,使用callback方式作为异步方法。

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type     | string                                                       | 是   | 订阅事件,固定为'netBlockStatusChange'。<br/>netBlockStatusChange:网络阻塞状态事件。 |
| callback | Callback&lt;{&nbsp;netHandle:&nbsp;[NetHandle](#nethandle),&nbsp;blocked:&nbsp;boolean&nbsp;}&gt; | 是   | 回调函数。                                                   |

**示例:**

Z
zengyawen 已提交
680
```js
C
clevercong 已提交
681
netConnection.on('netBlockStatusChange', function (data) {
682 683 684 685
    console.log(JSON.stringify(data))
})
```

M
maosiping 已提交
686
### on('netLost')
687 688 689

on(type: 'netLost', callback: Callback\<NetHandle>): void

C
clevercong 已提交
690
订阅网络丢失事件。
691 692 693 694 695

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
696 697
| 参数名   | 类型                               | 必填 | 说明                                                         |
| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
C
clevercong 已提交
698
| type     | string                             | 是   | 订阅事件,固定为'netLost'。<br/>netLost:网络严重中断或正常断开事件。 |
Z
zengyawen 已提交
699
| callback | Callback\<[NetHandle](#nethandle)> | 是   | 回调函数。                                                   |
700 701 702

**示例:**

Z
zengyawen 已提交
703
```js
C
clevercong 已提交
704 705
let netConnection1 = connection.createNetConnection()
netConnection1.on('netLost', function (data) {
706 707 708 709
    console.log(JSON.stringify(data))
})
```

M
maosiping 已提交
710
### on('netUnavailable')
711 712 713

on(type: 'netUnavailable', callback: Callback\<void>): void

C
clevercong 已提交
714
订阅网络不可用事件。
715 716 717 718 719

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
720 721
| 参数名   | 类型            | 必填 | 说明                                                         |
| -------- | --------------- | ---- | ------------------------------------------------------------ |
C
clevercong 已提交
722
| type     | string          | 是   | 订阅事件,固定为'netUnavailable'。<br/>netUnavailable:网络不可用事件。 |
Z
zengyawen 已提交
723
| callback | Callback\<void> | 是   | 回调函数。                                                   |
724 725 726

**示例:**

Z
zengyawen 已提交
727
```js
C
clevercong 已提交
728
netConnection.on('netUnavailable', function (data) {
729 730 731 732
    console.log(JSON.stringify(data))
})
```

M
maosiping 已提交
733
### register
734 735 736

register(callback: AsyncCallback\<void>): void

C
clevercong 已提交
737
订阅指定网络状态变化的通知。
738 739 740 741 742 743 744

**需要权限**:ohos.permission.GET_NETWORK_INFO

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
745 746 747
| 参数名   | 类型                 | 必填 | 说明       |
| -------- | -------------------- | ---- | ---------- |
| callback | AsyncCallback\<void> | 是   | 回调函数。 |
748 749 750

**示例:**

Z
zengyawen 已提交
751
```js
C
clevercong 已提交
752
netConnection.register(function (error) {
753 754 755 756
    console.log(JSON.stringify(error))
})
```

M
maosiping 已提交
757
### unregister
758 759 760

unregister(callback: AsyncCallback\<void>): void

C
clevercong 已提交
761
取消订阅默认网络状态变化的通知。
762 763 764 765 766

**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
767 768 769
| 参数名   | 类型                 | 必填 | 说明       |
| -------- | -------------------- | ---- | ---------- |
| callback | AsyncCallback\<void> | 是   | 回调函数。 |
770 771 772

**示例:**

Z
zengyawen 已提交
773
```js
C
clevercong 已提交
774
netConnection.unregister(function (error) {
775 776 777 778
    console.log(JSON.stringify(error))
})
```

M
maosiping 已提交
779
## NetHandle
780

Z
zengyawen 已提交
781
数据网络的句柄。
782

Z
zengyawen 已提交
783 784
在调用NetHandle的方法之前,需要先获取NetHandle对象。

C
clevercong 已提交
785 786
**系统能力**:SystemCapability.Communication.NetManager.Core

Z
zengyawen 已提交
787 788
### 属性

C
clevercong 已提交
789 790 791
| 参数名 | 类型   | 说明                      |
| ------ | ------ | ------------------------- |
| netId  | number | 网络ID,必须大于等于100。 |
792

M
maosiping 已提交
793
### getAddressesByName
794 795 796

getAddressesByName(host: string, callback: AsyncCallback\<Array\<NetAddress>>): void

Z
zengyawen 已提交
797
使用对应网络解析主机名以获取所有IP地址,使用callback方式作为异步方法。
798

C
clevercong 已提交
799 800
**需要权限**:ohos.permission.GET_NETWORK_INFO

801 802 803 804
**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
805 806 807 808
| 参数名   | 类型                                              | 必填 | 说明               |
| -------- | ------------------------------------------------- | ---- | ------------------ |
| host     | string                                            | 是   | 需要解析的主机名。 |
| callback | AsyncCallback\<Array\<[NetAddress](#netaddress)>> | 是   | 回调函数           |
809 810 811

**示例:**

Z
zengyawen 已提交
812
```js
813
connection.getDefaultNet().then(function (netHandle) {
C
clevercong 已提交
814 815
    let host = "xxxx";
    netHandle.getAddressesByName(host, function (error, addresses) {
816
        console.log(JSON.stringify(error))
C
clevercong 已提交
817
        console.log(JSON.stringify(addresses))
818 819 820 821
    })
})
```

M
maosiping 已提交
822
### getAddressesByName
823

C
clevercong 已提交
824
getAddressesByName(host: string): Promise\<Array\<NetAddress>>
825

Z
zengyawen 已提交
826
使用对应网络解析主机名以获取所有IP地址,使用Promise方式作为异步方法。
827

C
clevercong 已提交
828 829
**需要权限**:ohos.permission.GET_NETWORK_INFO

830 831 832 833
**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
834 835 836
| 参数名 | 类型   | 必填 | 说明               |
| ------ | ------ | ---- | ------------------ |
| host   | string | 是   | 需要解析的主机名。 |
837 838 839

**返回值:**

Z
zengyawen 已提交
840 841 842
| 类型                                        | 说明                          |
| ------------------------------------------- | ----------------------------- |
| Promise\<Array\<[NetAddress](#netaddress)>> | 以Promise形式返回所有IP地址。 |
843 844 845

**示例:**

Z
zengyawen 已提交
846
```js
847
connection.getDefaultNet().then(function (netHandle) {
C
clevercong 已提交
848 849 850
    let host = "xxxx";
    netHandle.getAddressesByName(host).then(function (addresses) {
        console.log(JSON.stringify(addresses))
851 852 853 854
    })
})
```

M
maosiping 已提交
855
### getAddressByName
856 857 858

getAddressByName(host: string, callback: AsyncCallback\<NetAddress>): void

Z
zengyawen 已提交
859
使用对应网络解析主机名以获取第一个IP地址,使用callback方式作为异步方法。
860

C
clevercong 已提交
861 862
**需要权限**:ohos.permission.GET_NETWORK_INFO

863 864 865 866
**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
867 868 869 870
| 参数名   | 类型                                      | 必填 | 说明               |
| -------- | ----------------------------------------- | ---- | ------------------ |
| host     | string                                    | 是   | 需要解析的主机名。 |
| callback | AsyncCallback\<[NetAddress](#netaddress)> | 是   | 回调函数。         |
871 872 873

**示例:**

Z
zengyawen 已提交
874
```js
875
connection.getDefaultNet().then(function (netHandle) {
C
clevercong 已提交
876 877
    let host = "xxxx";
    netHandle.getAddressByName(host, function (error, address) {
878
        console.log(JSON.stringify(error))
C
clevercong 已提交
879
        console.log(JSON.stringify(address))
880 881 882 883
    })
})
```

M
maosiping 已提交
884
### getAddressByName
885

C
clevercong 已提交
886
getAddressByName(host: string): Promise\<NetAddress>
887

Z
zengyawen 已提交
888
使用对应网络解析主机名以获取第一个IP地址,使用Promise方式作为异步方法。
889

C
clevercong 已提交
890 891
**需要权限**:ohos.permission.GET_NETWORK_INFO

892 893 894 895
**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
896 897 898
| 参数名 | 类型   | 必填 | 说明               |
| ------ | ------ | ---- | ------------------ |
| host   | string | 是   | 需要解析的主机名。 |
899 900 901

**返回值:**

Z
zengyawen 已提交
902 903 904
| 类型                                | 说明                            |
| ----------------------------------- | ------------------------------- |
| Promise\<[NetAddress](#netaddress)> | 以Promise形式返回第一个IP地址。 |
905 906 907

**示例:**

Z
zengyawen 已提交
908
```js
909
connection.getDefaultNet().then(function (netHandle) {
C
clevercong 已提交
910 911 912
    let host = "xxxx";
    netHandle.getAddressByName(host).then(function (address) {
        console.log(JSON.stringify(address))
913 914 915 916
    })
})
```

M
maosiping 已提交
917
## NetSpecifier
918

Z
zengyawen 已提交
919
提供承载数据网络能力的实例。
920

C
clevercong 已提交
921 922 923
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。

| 参数名                  | 类型                                | 说明                                                         |
Z
zengyawen 已提交
924 925 926
| ----------------------- | ----------------------------------- | ------------------------------------------------------------ |
| netCapabilities         | [NetCapabilities](#netcapabilities) | 存储数据网络的传输能力和承载类型。                           |
| bearerPrivateIdentifier | string                              | 网络标识符,WIFI网络的标识符是"wifi",蜂窝网络的标识符是"slot0"(对应SIM卡1)。 |
927

M
maosiping 已提交
928
## NetCapabilities
929

M
maosiping 已提交
930
网络的能力集。
931

C
clevercong 已提交
932 933 934
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。

| 参数名                | 类型                               | 说明                     |
Z
zengyawen 已提交
935 936 937 938
| --------------------- | ---------------------------------- | ------------------------ |
| linkUpBandwidthKbps   | number                             | 上行(设备到网络)带宽。 |
| linkDownBandwidthKbps | number                             | 下行(网络到设备)带宽。 |
| networkCap            | Array<[NetCap](#netcap)>           | 网络具体能力。           |
Z
zengyawen 已提交
939
| bearerTypes           | Array<[NetBearType](#netbeartype)> | 网络类型。               |
940

M
maosiping 已提交
941
## NetCap
942

M
maosiping 已提交
943
网络具体能力。
944

C
clevercong 已提交
945 946 947
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。

| 参数名                  | 值   | 说明                   |
Z
zengyawen 已提交
948
| ------------------------ | ---- | ---------------------- |
C
clevercong 已提交
949 950
| NET_CAPABILITY_MMS | 0 | 表示网络可以访问运营商的MMSC(Multimedia&nbsp;Message&nbsp;Service,多媒体短信服务)发送和接收彩信。 |
| NET_CAPABILITY_NOT_METERED | 11 | 表示网络流量未被计费。 |
Z
zengyawen 已提交
951
| NET_CAPABILITY_INTERNET  | 12   | 网络可以访问Internet。 |
C
clevercong 已提交
952
| NET_CAPABILITY_NOT_VPN | 15 | 表示网络不使用VPN(Virtual&nbsp;Private&nbsp;Network,虚拟专用网络)。 |
Z
zengyawen 已提交
953
| NET_CAPABILITY_VALIDATED | 16   | 网络可用。             |
954

M
maosiping 已提交
955
## NetBearType
956

M
maosiping 已提交
957
网络类型。
958

C
clevercong 已提交
959 960 961
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。

| 名称         | 值   | 说明        |
Z
zengyawen 已提交
962 963 964
| --------------- | ---- | ----------- |
| BEARER_CELLULAR | 0    | 蜂窝网络。  |
| BEARER_WIFI     | 1    | Wi-Fi网络。 |
C
clevercong 已提交
965
| BEARER_ETHERNET | 3 | 以太网网络。 |
966

M
maosiping 已提交
967
## ConnectionProperties
968

M
maosiping 已提交
969
网络连接信息。
970

C
clevercong 已提交
971 972 973
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。

| 参数名       | 类型                               | 说明             |
Z
zengyawen 已提交
974 975 976 977 978
| ------------- | ---------------------------------- | ---------------- |
| interfaceName | string                             | 网卡名称。       |
| domains       | string                             | 所属域,默认""。 |
| linkAddresses | Array<[LinkAddress](#linkaddress)> | 链路信息。       |
| routes        | Array<[RouteInfo](#routeinfo)>     | 路由信息。       |
C
clevercong 已提交
979
| dnses | Array&lt;[NetAddress](#netaddress)&gt; | 网络地址,参考[NetAddress](#netaddress)。 |
Z
zengyawen 已提交
980
| mtu           | number                             | 最大传输单元。   |
981

M
maosiping 已提交
982
## LinkAddress
983

M
maosiping 已提交
984
网络链路信息。
985

C
clevercong 已提交
986 987 988
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。

| 参数名       | 类型                      | 说明                 |
Z
zengyawen 已提交
989 990 991
| ------------ | ------------------------- | -------------------- |
| address      | [NetAddress](#netaddress) | 链路地址。           |
| prefixLength | number                    | 链路地址前缀的长度。 |
992

M
maosiping 已提交
993
## RouteInfo
994

M
maosiping 已提交
995
网络路由信息。
996

C
clevercong 已提交
997 998 999
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。

| 参数名         | 类型                        | 说明             |
Z
zengyawen 已提交
1000 1001 1002 1003 1004 1005
| -------------- | --------------------------- | ---------------- |
| interface      | string                      | 网卡名称。       |
| destination    | [LinkAddress](#linkaddress) | 目的地址。       |
| gateway        | [NetAddress](#netaddress)   | 网关地址。       |
| hasGateway     | boolean                     | 是否有网关。     |
| isDefaultRoute | boolean                     | 是否为默认路由。 |
1006

M
maosiping 已提交
1007
## NetAddress
1008

Z
zengyawen 已提交
1009
网络地址。
1010

C
clevercong 已提交
1011 1012 1013
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Core。

| 参数名  | 类型   | 说明                           |
Z
zengyawen 已提交
1014 1015 1016 1017
| ------- | ------ | ------------------------------ |
| address | string | 地址。                         |
| family  | number | IPv4 = 1,IPv6 = 2,默认IPv4。 |
| port    | number | 端口,取值范围\[0, 65535]。    |