js-apis-net-sharing.md 34.5 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 198
let SHARING_WIFI=0;
sharing.startSharing(SHARING_WIFI, (error) => {
Z
zhuwenchao 已提交
199 200 201 202 203 204 205 206 207 208
    console.log(JSON.stringify(error));
});
```

## sharing.startSharing

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

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

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

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

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

**参数:**

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

**返回值:**

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

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

| 错误码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 已提交
242 243 244 245
**示例:**

```js
import SharingIfaceType from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
246 247
let SHARING_WIFI=0;
sharing.startSharing(SHARING_WIFI).then(() => {
Z
zhuwenchao 已提交
248 249 250 251 252 253 254 255 256 257 258 259
    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 已提交
260 261
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
262 263
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

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

**参数:**

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

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

| 错误码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 已提交
286 287 288 289
**示例:**

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

## sharing.stopSharing

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

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

Y
YOUR_NAME 已提交
302 303
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
304 305
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

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

**参数:**

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

**返回值:**

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

Y
Yangys 已提交
320 321 322 323 324 325 326 327 328 329 330 331 332
**错误码:**

| 错误码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 已提交
333 334 335 336
**示例:**

```js
import SharingIfaceType from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
337 338
let SHARING_WIFI=0;
sharing.stopSharing(SHARING_WIFI).then(() => {
Z
zhuwenchao 已提交
339 340 341 342 343 344 345 346 347 348 349 350
    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 已提交
351 352
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
353 354
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
355
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
356 357 358 359 360 361 362

**参数:**

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

Y
Yangys 已提交
363 364 365 366 367 368 369 370
**错误码:**

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

Z
zhuwenchao 已提交
371 372 373 374 375 376 377 378 379 380 381 382 383 384 385
**示例:**

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

## sharing.getStatsRxBytes

getStatsRxBytes(): Promise\<number>

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

Y
YOUR_NAME 已提交
386 387
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
388 389
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
390
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
391 392 393 394 395 396 397

**返回值:**

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

Y
Yangys 已提交
398 399 400 401 402 403 404 405
**错误码:**

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

Z
zhuwenchao 已提交
406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421
**示例:**

```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 已提交
422 423
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
424 425
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
426
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
427 428 429 430 431 432 433

**参数:**

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

Y
Yangys 已提交
434 435 436 437 438 439 440 441
**错误码:**

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

Z
zhuwenchao 已提交
442 443 444 445 446 447 448 449 450 451 452 453 454 455 456
**示例:**

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

## sharing.getStatsTxBytes

getStatsTxBytes(): Promise\<number>

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

Y
YOUR_NAME 已提交
457 458
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
459 460
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
461
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
462 463 464 465 466 467 468

**返回值:**

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

Y
Yangys 已提交
469 470 471 472 473 474 475 476
**错误码:**

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

Z
zhuwenchao 已提交
477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492
**示例:**

```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 已提交
493 494
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
495 496
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
497
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
498 499 500 501 502 503 504

**参数:**

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

Y
Yangys 已提交
505 506 507 508 509 510 511 512
**错误码:**

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

Z
zhuwenchao 已提交
513 514 515 516 517 518 519 520 521 522 523 524 525 526 527
**示例:**

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

## sharing.getStatsTotalBytes

getStatsTotalBytes(): Promise\<number>

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

Y
YOUR_NAME 已提交
528 529
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
530 531
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
532
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
533 534 535 536 537 538 539

**返回值:**

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

Y
Yangys 已提交
540 541 542 543 544 545 546 547
**错误码:**

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

Z
zhuwenchao 已提交
548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563
**示例:**

```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 已提交
564 565
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
566 567
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
568
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
569 570 571 572 573

**参数:**

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

Y
Yangys 已提交
577 578 579 580 581 582 583 584 585 586
**错误码:**

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

Z
zhuwenchao 已提交
587 588 589 590
**示例:**

```js
import SharingIfaceState from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
591 592
let SHARING_BLUETOOTH=2;
sharing.getSharingIfaces(SHARING_BLUETOOTH, (error, data) => {
Z
zhuwenchao 已提交
593 594 595 596 597 598 599 600 601 602 603
    console.log(JSON.stringify(error));
    console.log(JSON.stringify(data));
});
```

## sharing.getSharingIfaces

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

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

Y
YOUR_NAME 已提交
604 605
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
606 607
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
608
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
609 610 611 612 613

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
Y
YOUR_NAME 已提交
614
| state    | [SharingIfaceState](#sharingifacestate) | 是   | 网络共享状态。 |
Z
zhuwenchao 已提交
615 616 617 618 619 620 621

**返回值:**

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

Y
Yangys 已提交
622 623 624 625 626 627 628 629 630 631
**错误码:**

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

Z
zhuwenchao 已提交
632 633 634 635
**示例:**

```js
import SharingIfaceState from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
636 637
let SHARING_BLUETOOTH=2;
sharing.getSharingIfaces(SHARING_BLUETOOTH).then(data => {
Z
zhuwenchao 已提交
638 639 640 641 642 643 644 645 646 647 648 649
    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 已提交
650 651
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
652 653
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
654
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
655 656 657 658 659 660 661 662

**参数:**

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

Y
Yangys 已提交
663 664 665 666 667 668 669 670 671 672
**错误码:**

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

Z
zhuwenchao 已提交
673 674 675
**示例:**

```js
Y
YOUR_NAME 已提交
676
import SharingIfaceType from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
677 678
let SHARING_WIFI=0;
sharing.getSharingState(SHARING_WIFI, (error, data) => {
Z
zhuwenchao 已提交
679 680 681 682 683 684 685 686 687 688 689
    console.log(JSON.stringify(error));
    console.log(JSON.stringify(data));
});
```

## sharing.getSharingState

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

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

Y
YOUR_NAME 已提交
690 691
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
692 693
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
694
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
695 696 697 698 699 700 701

**参数:**

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

Y
Yangys 已提交
702 703 704 705 706 707 708 709 710 711
**错误码:**

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

Z
zhuwenchao 已提交
712 713 714 715 716 717 718 719 720 721
**返回值:**

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

**示例:**

```js
import SharingIfaceType from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
722 723
let SHARING_WIFI=0;
sharing.getSharingState(SHARING_WIFI).then(data => {
Z
zhuwenchao 已提交
724 725 726 727 728 729 730 731 732 733 734 735
    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 已提交
736 737
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
738 739
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
740
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
741 742 743 744 745 746 747 748

**参数:**

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

Y
Yangys 已提交
749 750 751 752 753 754 755 756 757 758
**错误码:**

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

Z
zhuwenchao 已提交
759 760 761
**示例:**

```js
Y
YOUR_NAME 已提交
762
import SharingIfaceType from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
763 764
let SHARING_WIFI=0;
sharing.getSharableRegexes(SHARING_WIFI, (error, data) => {
Z
zhuwenchao 已提交
765 766 767 768 769 770 771 772 773 774 775
    console.log(JSON.stringify(error));
    console.log(JSON.stringify(data));
});
```

## sharing.getSharableRegexes

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

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

Y
YOUR_NAME 已提交
776 777
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
778 779
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
780
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
781 782 783 784 785 786 787 788 789 790 791 792 793

**参数:**

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

**返回值:**

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

Y
Yangys 已提交
794 795 796 797 798 799 800 801 802 803
**错误码:**

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

Z
zhuwenchao 已提交
804 805 806 807
**示例:**

```js
import SharingIfaceType from '@ohos.net.sharing'
Z
zhanghaifeng 已提交
808 809
let SHARING_WIFI=0;
sharing.getSharableRegexes(SHARING_WIFI).then(data => {
Z
zhuwenchao 已提交
810 811 812 813 814 815
    console.log(JSON.stringify(data));
}).catch(error => {
    console.log(JSON.stringify(error));
});
```

Y
YOUR_NAME 已提交
816
## sharing.on('sharingStateChange')
Z
zhuwenchao 已提交
817 818 819 820 821

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

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

Y
YOUR_NAME 已提交
822 823
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
824 825
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
826
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
827 828 829 830 831 832 833 834

**参数:**

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

Y
Yangys 已提交
835 836 837 838 839 840 841
**错误码:**

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

Z
zhuwenchao 已提交
842 843 844
**示例:**

```js
Z
zhanghaifeng 已提交
845 846
   sharing.on('sharingStateChange', (data) => {
    console.log('on sharingStateChange:' + JSON.stringify(data));
Z
zhuwenchao 已提交
847 848 849
});
```

Y
YOUR_NAME 已提交
850
## sharing.off('sharingStateChange')
Z
zhuwenchao 已提交
851 852 853 854 855

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

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

Y
YOUR_NAME 已提交
856 857
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
858 859
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
860
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
861 862 863 864 865 866 867 868

**参数:**

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

Y
Yangys 已提交
869 870 871 872 873 874 875
**错误码:**

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

Z
zhuwenchao 已提交
876 877 878
**示例:**

```js
Z
zhanghaifeng 已提交
879
sharing.off('sharingStateChange', (data) => {
Z
zhuwenchao 已提交
880 881 882 883
    console.log(JSON.stringify(data));
});
```

Y
YOUR_NAME 已提交
884
## sharing.on('interfaceSharingStateChange')
Z
zhuwenchao 已提交
885 886 887 888 889

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

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

Y
YOUR_NAME 已提交
890 891
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
892 893
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
894
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
895 896 897 898 899 900 901 902

**参数:**

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

Y
Yangys 已提交
903 904 905 906 907 908 909
**错误码:**

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

Z
zhuwenchao 已提交
910 911 912
**示例:**

```js
Z
zhanghaifeng 已提交
913 914
 sharing.on('interfaceSharingStateChange', (data) => {
    console.log('on interfaceSharingStateChange:' + JSON.stringify(data));
Z
zhuwenchao 已提交
915 916 917
});
```

Y
YOUR_NAME 已提交
918
## sharing.off('interfaceSharingStateChange')
Z
zhuwenchao 已提交
919 920 921 922 923

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

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

Y
YOUR_NAME 已提交
924 925
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
926 927
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
928
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
929 930 931 932 933

**参数:**

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

Y
Yangys 已提交
937 938 939 940 941 942 943
**错误码:**

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

Z
zhuwenchao 已提交
944 945 946
**示例:**

```js
Z
zhanghaifeng 已提交
947
sharing.off('interfaceSharingStateChange', (data) => {
Z
zhuwenchao 已提交
948 949 950 951
    console.log(JSON.stringify(data));
});
```

Y
YOUR_NAME 已提交
952
## sharing.on('sharingUpstreamChange')
Z
zhuwenchao 已提交
953 954 955 956 957

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

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

Y
YOUR_NAME 已提交
958 959
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
960 961
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
962
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
963 964 965 966 967 968 969 970

**参数:**

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

Y
Yangys 已提交
971 972 973 974 975 976 977
**错误码:**

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

Z
zhuwenchao 已提交
978 979 980
**示例:**

```js
Z
zhanghaifeng 已提交
981 982
  sharing.on('sharingUpstreamChange', (data) => {
    console.log('on sharingUpstreamChange:' + JSON.stringify(data));
Z
zhuwenchao 已提交
983 984 985
});
```

Y
YOUR_NAME 已提交
986
## sharing.off('sharingUpstreamChange')
Z
zhuwenchao 已提交
987 988 989 990 991

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

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

Y
YOUR_NAME 已提交
992 993
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
994 995
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
996
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
997 998 999 1000 1001 1002 1003 1004

**参数:**

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

Y
Yangys 已提交
1005 1006 1007 1008 1009 1010 1011
**错误码:**

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

Z
zhuwenchao 已提交
1012 1013 1014
**示例:**

```js
Z
zhanghaifeng 已提交
1015
sharing.off('sharingUpstreamChange', (data) => {
Z
zhuwenchao 已提交
1016 1017 1018 1019 1020 1021 1022 1023
    console.log(JSON.stringify(data));
});
```

## SharingIfaceState

网络共享状态。

Y
YOUR_NAME 已提交
1024 1025 1026
**系统接口**:此接口为系统接口。

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

Y
YOUR_NAME 已提交
1028
| 名称                  | 值   | 说明                   |
Z
zhuwenchao 已提交
1029 1030 1031 1032 1033 1034 1035
| ------------------------ | ---- | ---------------------- |
| SHARING_NIC_SERVING    | 1 | 正在网络共享。 |
| SHARING_NIC_CAN_SERVER | 2 | 可提供网络共享。 |
| SHARING_NIC_ERROR      | 3 | 网络共享错误。 |

## SharingIfaceType

Z
zhanghaifeng 已提交
1036
网络共享类型。
Z
zhuwenchao 已提交
1037

Y
YOUR_NAME 已提交
1038 1039 1040
**系统接口**:此接口为系统接口。

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

Y
YOUR_NAME 已提交
1042
| 名称                  | 值   | 说明                   |
Z
zhuwenchao 已提交
1043 1044 1045 1046
| ------------------------ | ---- | ---------------------- |
| SHARING_WIFI       | 0 | 网络共享类型Wi-Fi。 |
| SHARING_USB     | 1 | 网络共享类型USB。 |
| SHARING_BLUETOOTH    | 2 | 网络共享类型蓝牙。 |