js-apis-net-connection.md 33.8 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
## connection.getAllNets

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

113
获取所有处于连接状态的网络列表,使用callback方式作为异步方法。
C
clevercong 已提交
114

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
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;

139
获取所有处于连接状态的网络列表,使用promise方式作为异步方法。
C
clevercong 已提交
140

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
## connection.reportNetConnected

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

283
向网络管理报告网络处于可用状态,调用此接口说明应用程序认为网络的可用性(ohos.net.connection.NetCap.NET_CAPABILITY_VAILDATED)与网络管理不一致。
284
使用callback方式作为异步方法。
C
clevercong 已提交
285

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

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

**参数:**
291

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

**示例:**

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


## connection.reportNetConnected

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

312
向网络管理报告网络处于可用状态,调用此接口说明应用程序认为网络的可用性(ohos.net.connection.NetCap.NET_CAPABILITY_VAILDATED)与网络管理不一致。
313
使用promise方式作为异步方法。
C
clevercong 已提交
314

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

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

**参数:**
320

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

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

**示例:**

Z
zengyawen 已提交
332
```js
C
clevercong 已提交
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

345
向网络管理报告网络处于不可用状态,调用此接口说明应用程序认为网络的可用性(ohos.net.connection.NetCap.NET_CAPABILITY_VAILDATED)与网络管理不一致。
346
使用callback方式作为异步方法。
C
clevercong 已提交
347

C
clevercong 已提交
348 349 350
**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET

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

**参数:**
353

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

**示例:**

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


## connection.reportNetDisconnected

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

374
向网络管理报告网络处于不可用状态,调用此接口说明应用程序认为网络的可用性(ohos.net.connection.NetCap.NET_CAPABILITY_VAILDATED)与网络管理不一致。
375
使用promise方式作为异步方法。
C
clevercong 已提交
376

C
clevercong 已提交
377 378 379
**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET

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

**参数:**
382

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

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

**示例:**

Z
zengyawen 已提交
394
```js
C
clevercong 已提交
395 396 397 398 399 400 401
connection.getDefaultNet().then(function (netHandle) {
    connection.reportNetDisconnected(netHandle).then(function () {
        console.log(`report success`)
    });
});
```

402 403 404 405
## connection.getAddressesByName

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

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

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

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

**参数:**

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

**示例:**

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

## connection.getAddressesByName

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

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

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

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

**参数:**

Z
zengyawen 已提交
441 442 443
| 参数名 | 类型   | 必填 | 说明               |
| ------ | ------ | ---- | ------------------ |
| host   | string | 是   | 需要解析的主机名。 |
444 445 446

**返回值:**

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

**示例:**

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

C
clevercong 已提交
460 461 462 463 464 465 466

## connection.enableAirplaneMode

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

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

C
clevercong 已提交
467 468
该接口为系统接口。

C
clevercong 已提交
469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490
**系统能力**: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 已提交
491 492
该接口为系统接口。

C
clevercong 已提交
493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515
**系统能力**: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 已提交
516 517
该接口为系统接口。

C
clevercong 已提交
518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539
**系统能力**: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 已提交
540 541
该接口为系统接口。

C
clevercong 已提交
542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558
**系统能力**:SystemCapability.Communication.NetManager.Core

**返回值:**

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

**示例:**

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


559 560 561 562
## connection.createNetConnection

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

563
返回一个NetConnection对象,netSpecifier指定关注的网络的各项特征,timeout是超时时间(单位是毫秒),netSpecifier是timeout的必要条件,两者都没有则表示关注默认网络。
564 565 566 567 568

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

**参数:**

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

**返回值:**

Z
zengyawen 已提交
576 577 578
| 类型                            | 说明                 |
| ------------------------------- | -------------------- |
| [NetConnection](#netconnection) | 所关注的网络的句柄。 |
579 580 581

**示例:**

Z
zengyawen 已提交
582
```js
583
// 关注默认网络
C
clevercong 已提交
584
let netConnection = connection.createNetConnection()
585 586

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

M
maosiping 已提交
594
## NetConnection
595

Z
zengyawen 已提交
596
网络连接的句柄。
597

M
maosiping 已提交
598
### on('netAvailable')
599 600 601

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

C
clevercong 已提交
602
订阅网络可用事件。
603 604 605 606 607

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

**参数:**

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

**示例:**

Z
zengyawen 已提交
615
```js
C
clevercong 已提交
616
netConnection.on('netAvailable', function (data) {
617 618 619 620
    console.log(JSON.stringify(data))
})
```

M
maosiping 已提交
621
### on('netCapabilitiesChange')
622 623 624

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

C
clevercong 已提交
625
订阅网络能力变化事件。
626 627 628 629 630

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

**参数:**

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

**示例:**

Z
zengyawen 已提交
638
```js
C
clevercong 已提交
639
netConnection.on('netCapabilitiesChange', function (data) {
640 641 642 643
    console.log(JSON.stringify(data))
})
```

M
maosiping 已提交
644
### on('netConnectionPropertiesChange')
645 646 647

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

C
clevercong 已提交
648
订阅网络连接信息变化事件。
649 650 651 652 653

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

**参数:**

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

**示例:**

Z
zengyawen 已提交
661
```js
C
clevercong 已提交
662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683
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 已提交
684
```js
C
clevercong 已提交
685
netConnection.on('netBlockStatusChange', function (data) {
686 687 688 689
    console.log(JSON.stringify(data))
})
```

M
maosiping 已提交
690
### on('netLost')
691 692 693

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

C
clevercong 已提交
694
订阅网络丢失事件。
695 696 697 698 699

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

**参数:**

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

**示例:**

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

M
maosiping 已提交
714
### on('netUnavailable')
715 716 717

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

C
clevercong 已提交
718
订阅网络不可用事件。
719 720 721 722 723

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

**参数:**

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

**示例:**

Z
zengyawen 已提交
731
```js
C
clevercong 已提交
732
netConnection.on('netUnavailable', function (data) {
733 734 735 736
    console.log(JSON.stringify(data))
})
```

M
maosiping 已提交
737
### register
738 739 740

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

C
clevercong 已提交
741
订阅指定网络状态变化的通知。
742 743 744 745 746 747 748

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

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

**参数:**

Z
zengyawen 已提交
749 750 751
| 参数名   | 类型                 | 必填 | 说明       |
| -------- | -------------------- | ---- | ---------- |
| callback | AsyncCallback\<void> | 是   | 回调函数。 |
752 753 754

**示例:**

Z
zengyawen 已提交
755
```js
C
clevercong 已提交
756
netConnection.register(function (error) {
757 758 759 760
    console.log(JSON.stringify(error))
})
```

M
maosiping 已提交
761
### unregister
762 763 764

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

C
clevercong 已提交
765
取消订阅默认网络状态变化的通知。
766 767 768 769 770

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

**参数:**

Z
zengyawen 已提交
771 772 773
| 参数名   | 类型                 | 必填 | 说明       |
| -------- | -------------------- | ---- | ---------- |
| callback | AsyncCallback\<void> | 是   | 回调函数。 |
774 775 776

**示例:**

Z
zengyawen 已提交
777
```js
C
clevercong 已提交
778
netConnection.unregister(function (error) {
779 780 781 782
    console.log(JSON.stringify(error))
})
```

M
maosiping 已提交
783
## NetHandle
784

Z
zengyawen 已提交
785
数据网络的句柄。
786

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

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

Z
zengyawen 已提交
791 792
### 属性

C
clevercong 已提交
793 794 795
| 参数名 | 类型   | 说明                      |
| ------ | ------ | ------------------------- |
| netId  | number | 网络ID,必须大于等于100。 |
796

M
maosiping 已提交
797
### getAddressesByName
798 799 800

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

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

C
clevercong 已提交
803 804
**需要权限**:ohos.permission.GET_NETWORK_INFO

805 806 807 808
**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

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

**示例:**

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

M
maosiping 已提交
826
### getAddressesByName
827

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

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

C
clevercong 已提交
832 833
**需要权限**:ohos.permission.GET_NETWORK_INFO

834 835 836 837
**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
838 839 840
| 参数名 | 类型   | 必填 | 说明               |
| ------ | ------ | ---- | ------------------ |
| host   | string | 是   | 需要解析的主机名。 |
841 842 843

**返回值:**

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

**示例:**

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

M
maosiping 已提交
859
### getAddressByName
860 861 862

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

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

C
clevercong 已提交
865 866
**需要权限**:ohos.permission.GET_NETWORK_INFO

867 868 869 870
**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

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

**示例:**

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

M
maosiping 已提交
888
### getAddressByName
889

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

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

C
clevercong 已提交
894 895
**需要权限**:ohos.permission.GET_NETWORK_INFO

896 897 898 899
**系统能力**:SystemCapability.Communication.NetManager.Core

**参数:**

Z
zengyawen 已提交
900 901 902
| 参数名 | 类型   | 必填 | 说明               |
| ------ | ------ | ---- | ------------------ |
| host   | string | 是   | 需要解析的主机名。 |
903 904 905

**返回值:**

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

**示例:**

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

M
maosiping 已提交
921
## NetSpecifier
922

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

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

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

M
maosiping 已提交
932
## NetCapabilities
933

M
maosiping 已提交
934
网络的能力集。
935

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

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

M
maosiping 已提交
945
## NetCap
946

M
maosiping 已提交
947
网络具体能力。
948

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

| 参数名                  | 值   | 说明                   |
Z
zengyawen 已提交
952
| ------------------------ | ---- | ---------------------- |
C
clevercong 已提交
953 954
| NET_CAPABILITY_MMS | 0 | 表示网络可以访问运营商的MMSC(Multimedia&nbsp;Message&nbsp;Service,多媒体短信服务)发送和接收彩信。 |
| NET_CAPABILITY_NOT_METERED | 11 | 表示网络流量未被计费。 |
955
| NET_CAPABILITY_INTERNET  | 12   | 表示该网络应具有访问Internet的能力,该能力由网络提供者设置。 |
C
clevercong 已提交
956
| NET_CAPABILITY_NOT_VPN | 15 | 表示网络不使用VPN(Virtual&nbsp;Private&nbsp;Network,虚拟专用网络)。 |
957
| NET_CAPABILITY_VALIDATED | 16   | 表示该网络访问Internet的能力被网络管理成功验证,该能力由网络管理模块设置。 |
958

M
maosiping 已提交
959
## NetBearType
960

M
maosiping 已提交
961
网络类型。
962

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

| 名称         | 值   | 说明        |
Z
zengyawen 已提交
966 967 968
| --------------- | ---- | ----------- |
| BEARER_CELLULAR | 0    | 蜂窝网络。  |
| BEARER_WIFI     | 1    | Wi-Fi网络。 |
C
clevercong 已提交
969
| BEARER_ETHERNET | 3 | 以太网网络。 |
970

M
maosiping 已提交
971
## ConnectionProperties
972

M
maosiping 已提交
973
网络连接信息。
974

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

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

M
maosiping 已提交
986
## LinkAddress
987

M
maosiping 已提交
988
网络链路信息。
989

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

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

M
maosiping 已提交
997
## RouteInfo
998

M
maosiping 已提交
999
网络路由信息。
1000

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

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

M
maosiping 已提交
1011
## NetAddress
1012

Z
zengyawen 已提交
1013
网络地址。
1014

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

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