js-apis-net-sharing.md 34.2 KB
Newer Older
1
# @ohos.net.sharing (网络共享管理)
Z
zhuwenchao 已提交
2

Z
zhanghaifeng 已提交
3
网络共享管理分享设备已有网络给其他连接设备,支持Wi-Fi热点共享、蓝牙共享和USB共享,同时提供网络共享状态、共享流量查询功能。
Z
zhuwenchao 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

> **说明:**
>
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

## 导入模块

```js
import sharing from '@ohos.net.sharing'
```

## sharing.isSharingSupported

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

判断是否支持网络共享,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
21 22
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
23 24
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
25
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
26 27 28 29 30

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
F
fuchao 已提交
31
| callback | AsyncCallback\<boolean> | 是   | 回调函数,返回true代表支持网络共享。 |
Z
zhuwenchao 已提交
32

Y
Yangys 已提交
33 34 35 36 37 38 39 40 41
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |
| 2202011 | Cannot get network sharing configuration.           |

Z
zhuwenchao 已提交
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
**示例:**

```js
sharing.isSharingSupported((error, data) => {
    console.log(JSON.stringify(error));
    console.log(JSON.stringify(data));
});
```

## sharing.isSharingSupported

isSharingSupported(): Promise\<boolean>

判断是否支持网络共享,使用Promise方式作为异步方法。

Y
YOUR_NAME 已提交
57 58
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
59 60
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
61
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
62 63 64 65 66 67 68

**返回值:**

| 类型                              | 说明                                  |
| --------------------------------- | ------------------------------------- |
| Promise\<boolean> | 以Promise形式返回是否支持共享结果。 |

Y
Yangys 已提交
69 70 71 72 73 74 75 76 77
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |
| 2202011 | Cannot get network sharing configuration.           |

Z
zhuwenchao 已提交
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
**示例:**

```js
sharing.isSharingSupported().then(data => {
    console.log(JSON.stringify(data));
}).catch(error => {
    console.log(JSON.stringify(error));
});
```

## sharing.isSharing

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

获取当前网络共享状态,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
94 95
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
96 97
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
98
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
99 100 101 102 103

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
F
fuchao 已提交
104
| callback | AsyncCallback\<boolean> | 是   | 回调函数,返回true代表网络共享中。 |
Z
zhuwenchao 已提交
105

Y
Yangys 已提交
106 107 108 109 110 111 112 113
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |

Z
zhuwenchao 已提交
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
**示例:**

```js
sharing.isSharing((error, data) => {
    console.log(JSON.stringify(error));
    console.log(JSON.stringify(data));
});
```

## sharing.isSharing

isSharing(): Promise\<boolean>

获取当前网络共享状态,使用Promise方式作为异步方法。

Y
YOUR_NAME 已提交
129 130
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
131 132
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
133
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
134 135 136 137 138

**返回值:**

| 类型                              | 说明                                  |
| --------------------------------- | ------------------------------------- |
F
fuchao 已提交
139
| Promise\<boolean> | 以Promise形式返回网络共享状态结果,返回true代表网络共享中。 |
Z
zhuwenchao 已提交
140

Y
Yangys 已提交
141 142 143 144 145 146 147 148
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |

Z
zhuwenchao 已提交
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
**示例:**

```js
sharing.isSharing().then(data => {
    console.log(JSON.stringify(data));
}).catch(error => {
    console.log(JSON.stringify(error));
});
```

## sharing.startSharing

startSharing(type: SharingIfaceType, callback: AsyncCallback\<void>): void

开启指定类型共享,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
165 166
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
167 168
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
169
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
170 171 172 173 174 175 176 177

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| type | [SharingIfaceType](#sharingifacetype) | 是   | 共享类型,0:Wi-Fi 1:USB 2:BLUETOOTH。 |
| callback | AsyncCallback\<void> | 是   | 回调函数,返回开启网络共享结果。 |

Y
Yangys 已提交
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |
| 2200001 | Invalid parameter value.                     |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |
| 2202004 | Try to share an unavailable iface.           |
| 2202005 | WiFi sharing failed.                         |
| 2202006 | Bluetooth sharing failed.                    |
| 2202009 | Network share enable forwarding error.       |
| 2202011 | Cannot get network sharing configuration.           |

Z
zhuwenchao 已提交
193 194 195 196
**示例:**

```js
import SharingIfaceType from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
197
sharing.startSharing(0, (error) => {
Z
zhuwenchao 已提交
198 199 200 201 202 203 204 205 206 207
    console.log(JSON.stringify(error));
});
```

## sharing.startSharing

startSharing(type: SharingIfaceType): Promise\<void>

开启指定类型共享,使用Promise方式作为异步方法。

Y
YOUR_NAME 已提交
208 209
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
210 211
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
212
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
213 214 215 216 217 218 219 220 221 222 223 224 225

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| type | [SharingIfaceType](#sharingifacetype) | 是   | 共享类型,0:Wi-Fi 1:USB 2:BLUETOOTH。 |

**返回值:**

| 类型                              | 说明                                  |
| --------------------------------- | ------------------------------------- |
| Promise\<void> | 以Promise形式返回开启共享执行结果。 |

Y
Yangys 已提交
226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |
| 2200001 | Invalid parameter value.                     |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |
| 2202004 | Try to share an unavailable iface.           |
| 2202005 | WiFi sharing failed.                         |
| 2202006 | Bluetooth sharing failed.                    |
| 2202009 | Network share enable forwarding error.       |
| 2202011 | Cannot get network sharing configuration.           |

Z
zhuwenchao 已提交
241 242 243 244
**示例:**

```js
import SharingIfaceType from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
245
sharing.startSharing(0).then(() => {
Z
zhuwenchao 已提交
246 247 248 249 250 251 252 253 254 255 256 257
    console.log("start wifi sharing successful");
}).catch(error => {
    console.log("start wifi sharing failed");
});
```

## sharing.stopSharing

stopSharing(type: SharingIfaceType, callback: AsyncCallback\<void>): void

关闭指定类型共享,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
258 259
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
260 261
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
262
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
263 264 265 266 267 268 269 270

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| type | [SharingIfaceType](#sharingifacetype) | 是   | 共享类型,0:Wi-Fi 1:USB 2:BLUETOOTH。 |
| callback | AsyncCallback\<void> | 是   | 回调函数,返回停止网络共享结果。 |

Y
Yangys 已提交
271 272 273 274 275 276 277 278 279 280 281 282 283
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |
| 2200001 | Invalid parameter value.                     |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |
| 2202005 | WiFi sharing failed.                         |
| 2202006 | Bluetooth sharing failed.                    |
| 2202011 | Cannot get network sharing configuration.           |

Z
zhuwenchao 已提交
284 285 286 287
**示例:**

```js
import SharingIfaceType from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
288
sharing.stopSharing(0, (error) => {
Z
zhuwenchao 已提交
289 290 291 292 293 294 295 296 297 298
    console.log(JSON.stringify(error));
});
```

## sharing.stopSharing

stopSharing(type: SharingIfaceType): Promise\<void>

关闭指定类型共享,使用Promise方式作为异步方法。

Y
YOUR_NAME 已提交
299 300
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
301 302
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
303
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
304 305 306 307 308 309 310 311 312 313 314 315 316

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| type | [SharingIfaceType](#sharingifacetype) | 是   | 共享类型,0:Wi-Fi 1:USB 2:BLUETOOTH。 |

**返回值:**

| 类型                              | 说明                                  |
| --------------------------------- | ------------------------------------- |
| Promise\<void> | 以Promise形式返回关闭共享执行结果。 |

Y
Yangys 已提交
317 318 319 320 321 322 323 324 325 326 327 328 329
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |
| 2200001 | Invalid parameter value.                     |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |
| 2202005 | WiFi sharing failed.                         |
| 2202006 | Bluetooth sharing failed.                    |
| 2202011 | Cannot get network sharing configuration.           |

Z
zhuwenchao 已提交
330 331 332 333
**示例:**

```js
import SharingIfaceType from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
334
sharing.stopSharing(0).then(() => {
Z
zhuwenchao 已提交
335 336 337 338 339 340 341 342 343 344 345 346
    console.log("stop wifi sharing successful");
}).catch(error => {
    console.log("stop wifi sharing failed");
});
```

## sharing.getStatsRxBytes

getStatsRxBytes(callback: AsyncCallback\<number>): void

获取共享网络接收数据量,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
347 348
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
349 350
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
351
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
352 353 354 355 356 357 358

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| callback | AsyncCallback\<number> | 是   | 回调函数,number代表数据量,单位:KB。 |

Y
Yangys 已提交
359 360 361 362 363 364 365 366
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |

Z
zhuwenchao 已提交
367 368 369 370 371 372 373 374 375 376 377 378 379 380 381
**示例:**

```js
sharing.getStatsRxBytes((error, data) => {
    console.log(JSON.stringify(error));
    console.log(JSON.stringify(data));
});
```

## sharing.getStatsRxBytes

getStatsRxBytes(): Promise\<number>

获取共享网络接收数据量,使用Promise方式作为异步方法。

Y
YOUR_NAME 已提交
382 383
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
384 385
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
386
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
387 388 389 390 391 392 393

**返回值:**

| 类型                              | 说明                                  |
| --------------------------------- | ------------------------------------- |
| Promise\<number> | 以Promise形式返回共享网络接收数据量,单位:KB。 |

Y
Yangys 已提交
394 395 396 397 398 399 400 401
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |

Z
zhuwenchao 已提交
402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417
**示例:**

```js
sharing.getStatsRxBytes().then(data => {
    console.log(JSON.stringify(data));
}).catch(error => {
    console.log(JSON.stringify(error));
});
```

## sharing.getStatsTxBytes

getStatsTxBytes(callback: AsyncCallback\<number>): void

获取共享网络发送数据量,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
418 419
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
420 421
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
422
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
423 424 425 426 427 428 429

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| callback | AsyncCallback\<number> | 是   | 回调函数,number代表数据量,单位:KB。 |

Y
Yangys 已提交
430 431 432 433 434 435 436 437
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |

Z
zhuwenchao 已提交
438 439 440 441 442 443 444 445 446 447 448 449 450 451 452
**示例:**

```js
sharing.getStatsTxBytes((error, data) => {
    console.log(JSON.stringify(error));
    console.log(JSON.stringify(data));
});
```

## sharing.getStatsTxBytes

getStatsTxBytes(): Promise\<number>

获取共享网络发送数据量,使用Promise方式作为异步方法。

Y
YOUR_NAME 已提交
453 454
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
455 456
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
457
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
458 459 460 461 462 463 464

**返回值:**

| 类型                              | 说明                                  |
| --------------------------------- | ------------------------------------- |
| Promise\<number> | 以Promise形式返回共享网络发送数据量,单位:KB。 |

Y
Yangys 已提交
465 466 467 468 469 470 471 472
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |

Z
zhuwenchao 已提交
473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488
**示例:**

```js
sharing.getStatsTxBytes().then(data => {
    console.log(JSON.stringify(data));
}).catch(error => {
    console.log(JSON.stringify(error));
});
```

## sharing.getStatsTotalBytes

getStatsTotalBytes(callback: AsyncCallback\<number>): void

获取共享网络总数据量,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
489 490
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
491 492
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
493
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
494 495 496 497 498 499 500

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| callback | AsyncCallback\<number> | 是   | 回调函数,number代表数据量,单位:KB。 |

Y
Yangys 已提交
501 502 503 504 505 506 507 508
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |

Z
zhuwenchao 已提交
509 510 511 512 513 514 515 516 517 518 519 520 521 522 523
**示例:**

```js
sharing.getStatsTotalBytes((error, data) => {
    console.log(JSON.stringify(error));
    console.log(JSON.stringify(data));
});
```

## sharing.getStatsTotalBytes

getStatsTotalBytes(): Promise\<number>

获取共享网络总数据量,使用Promise方式作为异步方法。

Y
YOUR_NAME 已提交
524 525
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
526 527
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
528
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
529 530 531 532 533 534 535

**返回值:**

| 类型                              | 说明                                  |
| --------------------------------- | ------------------------------------- |
| Promise\<number> | 以Promise形式返回共享网络总数据量,单位:KB。 |

Y
Yangys 已提交
536 537 538 539 540 541 542 543
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |

Z
zhuwenchao 已提交
544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559
**示例:**

```js
sharing.getStatsTotalBytes().then(data => {
    console.log(JSON.stringify(data));
}).catch(error => {
    console.log(JSON.stringify(error));
});
```

## sharing.getSharingIfaces

getSharingIfaces(state: SharingIfaceState, callback: AsyncCallback\<Array\<string>>): void

获取指定状态的网卡名称列表,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
560 561
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
562 563
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
564
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
565 566 567 568 569

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
Y
YOUR_NAME 已提交
570
| state    | [SharingIfaceState](#sharingifacestate) | 是   | 网络共享状态。 |
Z
zhuwenchao 已提交
571 572
| callback | AsyncCallback\<Array\<string>> | 是   | 回调函数,返回指定状态的网卡名称列表。 |

Y
Yangys 已提交
573 574 575 576 577 578 579 580 581 582
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |
| 2200001 | Invalid parameter value.                     |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |

Z
zhuwenchao 已提交
583 584 585 586
**示例:**

```js
import SharingIfaceState from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
587
sharing.getSharingIfaces(2, (error, data) => {
Z
zhuwenchao 已提交
588 589 590 591 592 593 594 595 596 597 598
    console.log(JSON.stringify(error));
    console.log(JSON.stringify(data));
});
```

## sharing.getSharingIfaces

getSharingIfaces(state: SharingIfaceState): Promise\<Array\<string>>

获取指定状态的网卡名称列表,使用Promise方式作为异步方法。

Y
YOUR_NAME 已提交
599 600
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
601 602
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
603
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
604 605 606 607 608

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
Y
YOUR_NAME 已提交
609
| state    | [SharingIfaceState](#sharingifacestate) | 是   | 网络共享状态。 |
Z
zhuwenchao 已提交
610 611 612 613 614 615 616

**返回值:**

| 类型                              | 说明                                  |
| --------------------------------- | ------------------------------------- |
| Promise\<Array\<string>> | 以Promise形式返回指定状态网卡名称列表。 |

Y
Yangys 已提交
617 618 619 620 621 622 623 624 625 626
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |
| 2200001 | Invalid parameter value.                     |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |

Z
zhuwenchao 已提交
627 628 629 630
**示例:**

```js
import SharingIfaceState from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
631
sharing.getSharingIfaces(2).then(data => {
Z
zhuwenchao 已提交
632 633 634 635 636 637 638 639 640 641 642 643
    console.log(JSON.stringify(data));
}).catch(error => {
    console.log(JSON.stringify(error));
});
```

## sharing.getSharingState

getSharingState(type: SharingIfaceType, callback: AsyncCallback\<SharingIfaceState>): void

获取指定类型网络共享状态,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
644 645
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
646 647
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
648
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
649 650 651 652 653 654 655 656

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| type | [SharingIfaceType](#sharingifacetype) | 是   | 共享类型,0:Wi-Fi 1:USB 2:BLUETOOTH。 |
| callback | AsyncCallback\<[SharingIfaceState](#sharingifacestate)> | 是   | 回调函数,返回指定类型网络共享状态。 |

Y
Yangys 已提交
657 658 659 660 661 662 663 664 665 666
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |
| 2200001 | Invalid parameter value.                     |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |

Z
zhuwenchao 已提交
667 668 669
**示例:**

```js
Y
YOUR_NAME 已提交
670
import SharingIfaceType from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
671
sharing.getSharingState(0, (error, data) => {
Z
zhuwenchao 已提交
672 673 674 675 676 677 678 679 680 681 682
    console.log(JSON.stringify(error));
    console.log(JSON.stringify(data));
});
```

## sharing.getSharingState

getSharingState(type: SharingIfaceType): Promise\<SharingIfaceState>

获取指定类型网络共享状态,使用Promise方式作为异步方法。

Y
YOUR_NAME 已提交
683 684
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
685 686
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
687
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
688 689 690 691 692 693 694

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| type | [SharingIfaceType](#sharingifacetype) | 是   | 共享类型,0:Wi-Fi 1:USB 2:BLUETOOTH。 |

Y
Yangys 已提交
695 696 697 698 699 700 701 702 703 704
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |
| 2200001 | Invalid parameter value.                     |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |

Z
zhuwenchao 已提交
705 706 707 708 709 710 711 712 713 714
**返回值:**

| 类型                              | 说明                                  |
| --------------------------------- | ------------------------------------- |
| Promise\<[SharingIfaceState](#sharingifacestate)> | 以Promise形式返回定类型网络共共享状态。 |

**示例:**

```js
import SharingIfaceType from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
715
sharing.getSharingState(0).then(data => {
Z
zhuwenchao 已提交
716 717 718 719 720 721 722 723 724 725 726 727
    console.log(JSON.stringify(data));
}).catch(error => {
    console.log(JSON.stringify(error));
});
```

## sharing.getSharableRegexes

getSharableRegexes(type: SharingIfaceType, callback: AsyncCallback\<Array\<string>>): void

获取指定类型网卡名称正则表达式列表,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
728 729
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
730 731
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
732
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
733 734 735 736 737 738 739 740

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| type | [SharingIfaceType](#sharingifacetype) | 是   | 共享类型,0:Wi-Fi 1:USB 2:BLUETOOTH。 |
| callback | AsyncCallback\<Array\<string>> | 是   | 回调函数,返回指定类型网卡名称正则表达式列表。 |

Y
Yangys 已提交
741 742 743 744 745 746 747 748 749 750
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |
| 2200001 | Invalid parameter value.                     |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |

Z
zhuwenchao 已提交
751 752 753
**示例:**

```js
Y
YOUR_NAME 已提交
754
import SharingIfaceType from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
755
sharing.getSharableRegexes(0, (error, data) => {
Z
zhuwenchao 已提交
756 757 758 759 760 761 762 763 764 765 766
    console.log(JSON.stringify(error));
    console.log(JSON.stringify(data));
});
```

## sharing.getSharableRegexes

getSharableRegexes(type: SharingIfaceType): Promise\<Array\<string>>

获取指定类型网卡名称正则表达式列表,使用Promise方式作为异步方法。

Y
YOUR_NAME 已提交
767 768
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
769 770
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
771
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
772 773 774 775 776 777 778 779 780 781 782 783 784

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| type | [SharingIfaceType](#sharingifacetype) | 是   | 共享类型,0:Wi-Fi 1:USB 2:BLUETOOTH。 |

**返回值:**

| 类型                              | 说明                                  |
| --------------------------------- | ------------------------------------- |
| Promise\<Array\<string>> | 以Promise形式返回正则表达式列表。 |

Y
Yangys 已提交
785 786 787 788 789 790 791 792 793 794
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |
| 2200001 | Invalid parameter value.                     |
| 2200002 | Operation failed. Cannot connect to service. |
| 2200003 | System internal error.                       |

Z
zhuwenchao 已提交
795 796 797 798
**示例:**

```js
import SharingIfaceType from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
799
sharing.getSharableRegexes(0).then(data => {
Z
zhuwenchao 已提交
800 801 802 803 804 805
    console.log(JSON.stringify(data));
}).catch(error => {
    console.log(JSON.stringify(error));
});
```

Y
YOUR_NAME 已提交
806
## sharing.on('sharingStateChange')
Z
zhuwenchao 已提交
807 808 809 810 811

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

注册网络共享状态变化事件,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
812 813
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
814 815
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
816
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
817 818 819 820 821 822 823 824

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| type | string | 是   | 事件名称。 |
| callback | AsyncCallback\<boolean> | 是   | 回调函数,返回网络共享状态。 |

Y
Yangys 已提交
825 826 827 828 829 830 831
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |

Z
zhuwenchao 已提交
832 833 834
**示例:**

```js
Z
zhanghaifeng 已提交
835 836
   sharing.on('sharingStateChange', (data) => {
    console.log('on sharingStateChange:' + JSON.stringify(data));
Z
zhuwenchao 已提交
837 838 839
});
```

Y
YOUR_NAME 已提交
840
## sharing.off('sharingStateChange')
Z
zhuwenchao 已提交
841 842 843 844 845

off(type: 'sharingStateChange', callback?: Callback\<boolean>): void

注销网络共享状态变化事件,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
846 847
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
848 849
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
850
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
851 852 853 854 855 856 857 858

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| type | string | 是   | 事件名称。 |
| callback | AsyncCallback\<boolean> | 否   | 回调函数,返回网络共享状态。 |

Y
Yangys 已提交
859 860 861 862 863 864 865
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |

Z
zhuwenchao 已提交
866 867 868
**示例:**

```js
Z
zhanghaifeng 已提交
869
sharing.off('sharingStateChange', (data) => {
Z
zhuwenchao 已提交
870 871 872 873
    console.log(JSON.stringify(data));
});
```

Y
YOUR_NAME 已提交
874
## sharing.on('interfaceSharingStateChange')
Z
zhuwenchao 已提交
875 876 877 878 879

on(type: 'interfaceSharingStateChange', callback: Callback\<{ type: SharingIfaceType, iface: string, state: SharingIfaceState }>): void

注册网卡网络共享状态变化事件,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
880 881
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
882 883
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
884
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
885 886 887 888 889 890 891 892

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| type | string | 是   | 事件名称。 |
| callback | AsyncCallback\<{ type: [SharingIfaceType](#sharingifacetype), iface: string, state: SharingIfaceState(#sharingifacestate) }> | 是   | 回调函数,指定网卡共享状态变化时调用。 |

Y
Yangys 已提交
893 894 895 896 897 898 899
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |

Z
zhuwenchao 已提交
900 901 902
**示例:**

```js
Z
zhanghaifeng 已提交
903 904
 sharing.on('interfaceSharingStateChange', (data) => {
    console.log('on interfaceSharingStateChange:' + JSON.stringify(data));
Z
zhuwenchao 已提交
905 906 907
});
```

Y
YOUR_NAME 已提交
908
## sharing.off('interfaceSharingStateChange')
Z
zhuwenchao 已提交
909 910 911 912 913

off(type: 'interfaceSharingStateChange', callback?: Callback\<{ type: SharingIfaceType, iface: string, state: SharingIfaceState }>): void

注销网卡网络共享状态变化事件,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
914 915
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
916 917
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
918
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
919 920 921 922 923

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
Y
YOUR_NAME 已提交
924
| type | string | 是   | 事件名称。 |
Z
zhuwenchao 已提交
925 926
| callback | AsyncCallback\<{ type: [SharingIfaceType](#sharingifacetype), iface: string, state: SharingIfaceState(#sharingifacestate) }> | 否   | 回调函数,注销指定网卡共享状态变化通知。 |

Y
Yangys 已提交
927 928 929 930 931 932 933
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |

Z
zhuwenchao 已提交
934 935 936
**示例:**

```js
Z
zhanghaifeng 已提交
937
sharing.off('interfaceSharingStateChange', (data) => {
Z
zhuwenchao 已提交
938 939 940 941
    console.log(JSON.stringify(data));
});
```

Y
YOUR_NAME 已提交
942
## sharing.on('sharingUpstreamChange')
Z
zhuwenchao 已提交
943 944 945 946 947

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

注册上行网络变化事件,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
948 949
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
950 951
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
952
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
953 954 955 956 957 958 959 960

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| type | string | 是   | 事件名称。 |
| callback | AsyncCallback\<NetHandle> | 是   | 回调函数,上行网络变化时调用。 |

Y
Yangys 已提交
961 962 963 964 965 966 967
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |

Z
zhuwenchao 已提交
968 969 970
**示例:**

```js
Z
zhanghaifeng 已提交
971 972
  sharing.on('sharingUpstreamChange', (data) => {
    console.log('on sharingUpstreamChange:' + JSON.stringify(data));
Z
zhuwenchao 已提交
973 974 975
});
```

Y
YOUR_NAME 已提交
976
## sharing.off('sharingUpstreamChange')
Z
zhuwenchao 已提交
977 978 979 980 981

off(type: 'sharingUpstreamChange', callback?: Callback\<NetHandle>): void

注销上行网络变化事件,使用callback方式作为异步方法。

Y
YOUR_NAME 已提交
982 983
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
984 985
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
986
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
987 988 989 990 991 992 993 994

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
| type | string | 是   | 事件名称。 |
| callback | AsyncCallback\<NetHandle> | 否   | 回调函数,注销上行网络变化事件。 |

Y
Yangys 已提交
995 996 997 998 999 1000 1001
**错误码:**

| 错误码ID | 错误信息                                      |
| ------- | -------------------------------------------- |
| 201     | Permission denied.                           |
| 401     | Parameter error.                             |

Z
zhuwenchao 已提交
1002 1003 1004
**示例:**

```js
Z
zhanghaifeng 已提交
1005
sharing.off('sharingUpstreamChange', (data) => {
Z
zhuwenchao 已提交
1006 1007 1008 1009 1010 1011 1012 1013
    console.log(JSON.stringify(data));
});
```

## SharingIfaceState

网络共享状态。

Y
YOUR_NAME 已提交
1014 1015 1016
**系统接口**:此接口为系统接口。

**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
1017

Y
YOUR_NAME 已提交
1018
| 名称                  | 值   | 说明                   |
Z
zhuwenchao 已提交
1019 1020 1021 1022 1023 1024 1025
| ------------------------ | ---- | ---------------------- |
| SHARING_NIC_SERVING    | 1 | 正在网络共享。 |
| SHARING_NIC_CAN_SERVER | 2 | 可提供网络共享。 |
| SHARING_NIC_ERROR      | 3 | 网络共享错误。 |

## SharingIfaceType

Z
zhanghaifeng 已提交
1026
网络共享类型。
Z
zhuwenchao 已提交
1027

Y
YOUR_NAME 已提交
1028 1029 1030
**系统接口**:此接口为系统接口。

**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
1031

Y
YOUR_NAME 已提交
1032
| 名称                  | 值   | 说明                   |
Z
zhuwenchao 已提交
1033 1034 1035 1036
| ------------------------ | ---- | ---------------------- |
| SHARING_WIFI       | 0 | 网络共享类型Wi-Fi。 |
| SHARING_USB     | 1 | 网络共享类型USB。 |
| SHARING_BLUETOOTH    | 2 | 网络共享类型蓝牙。 |