js-apis-net-sharing.md 34.4 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
**示例:**

```js
sharing.isSharingSupported((error, data) => {
Y
Yangys 已提交
46 47
  console.log(JSON.stringify(error));
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
48 49 50 51 52 53 54 55 56
});
```

## 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
**示例:**

```js
sharing.isSharingSupported().then(data => {
Y
Yangys 已提交
82
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
83
}).catch(error => {
Y
Yangys 已提交
84
  console.log(JSON.stringify(error));
Z
zhuwenchao 已提交
85 86 87 88 89 90 91 92 93
});
```

## 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
**示例:**

```js
sharing.isSharing((error, data) => {
Y
Yangys 已提交
118 119
  console.log(JSON.stringify(error));
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
120 121 122 123 124 125 126 127 128
});
```

## 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
**示例:**

```js
sharing.isSharing().then(data => {
Y
Yangys 已提交
153
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
154
}).catch(error => {
Y
Yangys 已提交
155
  console.log(JSON.stringify(error));
Z
zhuwenchao 已提交
156 157 158 159 160 161 162 163 164
});
```

## 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'
Y
Yangys 已提交
197

Y
Yangys 已提交
198
let SHARING_WIFI = 0;
Z
zhanghaifeng 已提交
199
sharing.startSharing(SHARING_WIFI, (error) => {
Y
Yangys 已提交
200
  console.log(JSON.stringify(error));
Z
zhuwenchao 已提交
201 202 203 204 205 206 207 208 209
});
```

## sharing.startSharing

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

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

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

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

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

**参数:**

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

**返回值:**

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

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

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

```js
import SharingIfaceType from '@ohos.net.sharing'
Y
Yangys 已提交
247

Y
Yangys 已提交
248
let SHARING_WIFI = 0;
Z
zhanghaifeng 已提交
249
sharing.startSharing(SHARING_WIFI).then(() => {
Y
Yangys 已提交
250
  console.log("start wifi sharing successful");
Z
zhuwenchao 已提交
251
}).catch(error => {
Y
Yangys 已提交
252
  console.log("start wifi sharing failed");
Z
zhuwenchao 已提交
253 254 255 256 257 258 259 260 261
});
```

## sharing.stopSharing

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

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

Y
YOUR_NAME 已提交
262 263
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
264 265
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

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

**参数:**

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

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

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

```js
import SharingIfaceType from '@ohos.net.sharing'
Y
Yangys 已提交
292

Y
Yangys 已提交
293
let SHARING_WIFI = 0;
Z
zhanghaifeng 已提交
294
sharing.stopSharing(SHARING_WIFI, (error) => {
Y
Yangys 已提交
295
  console.log(JSON.stringify(error));
Z
zhuwenchao 已提交
296 297 298 299 300 301 302 303 304
});
```

## sharing.stopSharing

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

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

Y
YOUR_NAME 已提交
305 306
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
307 308
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

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

**参数:**

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

**返回值:**

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

Y
Yangys 已提交
323 324 325 326 327 328 329 330 331 332 333 334 335
**错误码:**

| 错误码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 已提交
336 337 338 339
**示例:**

```js
import SharingIfaceType from '@ohos.net.sharing'
Y
Yangys 已提交
340

Y
Yangys 已提交
341
let SHARING_WIFI = 0;
Z
zhanghaifeng 已提交
342
sharing.stopSharing(SHARING_WIFI).then(() => {
Y
Yangys 已提交
343
  console.log("stop wifi sharing successful");
Z
zhuwenchao 已提交
344
}).catch(error => {
Y
Yangys 已提交
345
  console.log("stop wifi sharing failed");
Z
zhuwenchao 已提交
346 347 348 349 350 351 352 353 354
});
```

## sharing.getStatsRxBytes

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

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

Y
YOUR_NAME 已提交
355 356
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
357 358
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
359
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
360 361 362 363 364 365 366

**参数:**

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

Y
Yangys 已提交
367 368 369 370 371 372 373 374
**错误码:**

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

Z
zhuwenchao 已提交
375 376 377 378
**示例:**

```js
sharing.getStatsRxBytes((error, data) => {
Y
Yangys 已提交
379 380
  console.log(JSON.stringify(error));
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
381 382 383 384 385 386 387 388 389
});
```

## sharing.getStatsRxBytes

getStatsRxBytes(): Promise\<number>

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

Y
YOUR_NAME 已提交
390 391
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
392 393
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
394
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
395 396 397 398 399 400 401

**返回值:**

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

Y
Yangys 已提交
402 403 404 405 406 407 408 409
**错误码:**

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

Z
zhuwenchao 已提交
410 411 412 413
**示例:**

```js
sharing.getStatsRxBytes().then(data => {
Y
Yangys 已提交
414
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
415
}).catch(error => {
Y
Yangys 已提交
416
  console.log(JSON.stringify(error));
Z
zhuwenchao 已提交
417 418 419 420 421 422 423 424 425
});
```

## sharing.getStatsTxBytes

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

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

Y
YOUR_NAME 已提交
426 427
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
428 429
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
430
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
431 432 433 434 435 436 437

**参数:**

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

Y
Yangys 已提交
438 439 440 441 442 443 444 445
**错误码:**

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

Z
zhuwenchao 已提交
446 447 448 449
**示例:**

```js
sharing.getStatsTxBytes((error, data) => {
Y
Yangys 已提交
450 451
  console.log(JSON.stringify(error));
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
452 453 454 455 456 457 458 459 460
});
```

## sharing.getStatsTxBytes

getStatsTxBytes(): Promise\<number>

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

Y
YOUR_NAME 已提交
461 462
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
463 464
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
465
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
466 467 468 469 470 471 472

**返回值:**

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

Y
Yangys 已提交
473 474 475 476 477 478 479 480
**错误码:**

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

Z
zhuwenchao 已提交
481 482 483 484
**示例:**

```js
sharing.getStatsTxBytes().then(data => {
Y
Yangys 已提交
485
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
486
}).catch(error => {
Y
Yangys 已提交
487
  console.log(JSON.stringify(error));
Z
zhuwenchao 已提交
488 489 490 491 492 493 494 495 496
});
```

## sharing.getStatsTotalBytes

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

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

Y
YOUR_NAME 已提交
497 498
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
499 500
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
501
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
502 503 504 505 506 507 508

**参数:**

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

Y
Yangys 已提交
509 510 511 512 513 514 515 516
**错误码:**

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

Z
zhuwenchao 已提交
517 518 519 520
**示例:**

```js
sharing.getStatsTotalBytes((error, data) => {
Y
Yangys 已提交
521 522
  console.log(JSON.stringify(error));
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
523 524 525 526 527 528 529 530 531
});
```

## sharing.getStatsTotalBytes

getStatsTotalBytes(): Promise\<number>

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

Y
YOUR_NAME 已提交
532 533
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
534 535
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
536
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
537 538 539 540 541 542 543

**返回值:**

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

Y
Yangys 已提交
544 545 546 547 548 549 550 551
**错误码:**

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

Z
zhuwenchao 已提交
552 553 554 555
**示例:**

```js
sharing.getStatsTotalBytes().then(data => {
Y
Yangys 已提交
556
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
557
}).catch(error => {
Y
Yangys 已提交
558
  console.log(JSON.stringify(error));
Z
zhuwenchao 已提交
559 560 561 562 563 564 565 566 567
});
```

## sharing.getSharingIfaces

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

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

Y
YOUR_NAME 已提交
568 569
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
570 571
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
572
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
573 574 575 576 577

**参数:**

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

Y
Yangys 已提交
581 582 583 584 585 586 587 588 589 590
**错误码:**

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

Z
zhuwenchao 已提交
591 592 593 594
**示例:**

```js
import SharingIfaceState from '@ohos.net.sharing'
Y
Yangys 已提交
595

Y
Yangys 已提交
596
let SHARING_BLUETOOTH = 2;
Z
zhanghaifeng 已提交
597
sharing.getSharingIfaces(SHARING_BLUETOOTH, (error, data) => {
Y
Yangys 已提交
598 599
  console.log(JSON.stringify(error));
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
600 601 602 603 604 605 606 607 608
});
```

## sharing.getSharingIfaces

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

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

Y
YOUR_NAME 已提交
609 610
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
611 612
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
613
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
614 615 616 617 618

**参数:**

| 参数名   | 类型                                    | 必填 | 说明       |
| -------- | --------------------------------------- | ---- | ---------- |
Y
YOUR_NAME 已提交
619
| state    | [SharingIfaceState](#sharingifacestate) | 是   | 网络共享状态。 |
Z
zhuwenchao 已提交
620 621 622 623 624 625 626

**返回值:**

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

Y
Yangys 已提交
627 628 629 630 631 632 633 634 635 636
**错误码:**

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

Z
zhuwenchao 已提交
637 638 639 640
**示例:**

```js
import SharingIfaceState from '@ohos.net.sharing'
Y
Yangys 已提交
641

Y
Yangys 已提交
642
let SHARING_BLUETOOTH = 2;
Z
zhanghaifeng 已提交
643
sharing.getSharingIfaces(SHARING_BLUETOOTH).then(data => {
Y
Yangys 已提交
644
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
645
}).catch(error => {
Y
Yangys 已提交
646
  console.log(JSON.stringify(error));
Z
zhuwenchao 已提交
647 648 649 650 651 652 653 654 655
});
```

## sharing.getSharingState

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

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

Y
YOUR_NAME 已提交
656 657
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
658 659
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
660
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
661 662 663 664 665 666 667 668

**参数:**

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

Y
Yangys 已提交
669 670 671 672 673 674 675 676 677 678
**错误码:**

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

Z
zhuwenchao 已提交
679 680 681
**示例:**

```js
Y
YOUR_NAME 已提交
682
import SharingIfaceType from '@ohos.net.sharing'
Y
Yangys 已提交
683

Y
Yangys 已提交
684
let SHARING_WIFI = 0;
Z
zhanghaifeng 已提交
685
sharing.getSharingState(SHARING_WIFI, (error, data) => {
Y
Yangys 已提交
686 687
  console.log(JSON.stringify(error));
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
688 689 690 691 692 693 694 695 696
});
```

## sharing.getSharingState

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

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

Y
YOUR_NAME 已提交
697 698
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
699 700
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
701
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
702 703 704 705 706 707 708

**参数:**

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

Y
Yangys 已提交
709 710 711 712 713 714 715 716 717 718
**错误码:**

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

Z
zhuwenchao 已提交
719 720 721 722 723 724 725 726 727 728
**返回值:**

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

**示例:**

```js
import SharingIfaceType from '@ohos.net.sharing'
Y
Yangys 已提交
729

Y
Yangys 已提交
730
let SHARING_WIFI = 0;
Z
zhanghaifeng 已提交
731
sharing.getSharingState(SHARING_WIFI).then(data => {
Y
Yangys 已提交
732
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
733
}).catch(error => {
Y
Yangys 已提交
734
  console.log(JSON.stringify(error));
Z
zhuwenchao 已提交
735 736 737 738 739 740 741 742 743
});
```

## sharing.getSharableRegexes

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

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

Y
YOUR_NAME 已提交
744 745
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
746 747
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
748
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
749 750 751 752 753 754 755 756

**参数:**

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

Y
Yangys 已提交
757 758 759 760 761 762 763 764 765 766
**错误码:**

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

Z
zhuwenchao 已提交
767 768 769
**示例:**

```js
Y
YOUR_NAME 已提交
770
import SharingIfaceType from '@ohos.net.sharing'
Y
Yangys 已提交
771

Y
Yangys 已提交
772
let SHARING_WIFI = 0;
Z
zhanghaifeng 已提交
773
sharing.getSharableRegexes(SHARING_WIFI, (error, data) => {
Y
Yangys 已提交
774 775
  console.log(JSON.stringify(error));
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
776 777 778 779 780 781 782 783 784
});
```

## sharing.getSharableRegexes

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

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

Y
YOUR_NAME 已提交
785 786
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
787 788
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
789
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
790 791 792 793 794 795 796 797 798 799 800 801 802

**参数:**

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

**返回值:**

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

Y
Yangys 已提交
803 804 805 806 807 808 809 810 811 812
**错误码:**

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

Z
zhuwenchao 已提交
813 814 815 816
**示例:**

```js
import SharingIfaceType from '@ohos.net.sharing'
Y
Yangys 已提交
817

Y
Yangys 已提交
818
let SHARING_WIFI = 0;
Z
zhanghaifeng 已提交
819
sharing.getSharableRegexes(SHARING_WIFI).then(data => {
Y
Yangys 已提交
820
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
821
}).catch(error => {
Y
Yangys 已提交
822
  console.log(JSON.stringify(error));
Z
zhuwenchao 已提交
823 824 825
});
```

Y
YOUR_NAME 已提交
826
## sharing.on('sharingStateChange')
Z
zhuwenchao 已提交
827 828 829 830 831

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

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

Y
YOUR_NAME 已提交
832 833
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
834 835
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
836
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
837 838 839 840 841 842 843 844

**参数:**

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

Y
Yangys 已提交
845 846 847 848 849 850 851
**错误码:**

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

Z
zhuwenchao 已提交
852 853 854
**示例:**

```js
Y
Yangys 已提交
855
sharing.on('sharingStateChange', (data) => {
Y
Yangys 已提交
856
  console.log('on sharingStateChange: ' + JSON.stringify(data));
Z
zhuwenchao 已提交
857 858 859
});
```

Y
YOUR_NAME 已提交
860
## sharing.off('sharingStateChange')
Z
zhuwenchao 已提交
861 862 863 864 865

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

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

Y
YOUR_NAME 已提交
866 867
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
868 869
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
870
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
871 872 873 874 875 876 877 878

**参数:**

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

Y
Yangys 已提交
879 880 881 882 883 884 885
**错误码:**

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

Z
zhuwenchao 已提交
886 887 888
**示例:**

```js
Z
zhanghaifeng 已提交
889
sharing.off('sharingStateChange', (data) => {
Y
Yangys 已提交
890
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
891 892 893
});
```

Y
YOUR_NAME 已提交
894
## sharing.on('interfaceSharingStateChange')
Z
zhuwenchao 已提交
895

Y
Yangys 已提交
896 897
on(type: 'interfaceSharingStateChange', callback: Callback\<{ type: SharingIfaceType, iface: string, state:
SharingIfaceState }>): void
Z
zhuwenchao 已提交
898 899 900

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

Y
YOUR_NAME 已提交
901 902
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
903 904
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
905
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
906 907 908 909 910 911 912 913

**参数:**

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

Y
Yangys 已提交
914 915 916 917 918 919 920
**错误码:**

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

Z
zhuwenchao 已提交
921 922 923
**示例:**

```js
Y
Yangys 已提交
924
sharing.on('interfaceSharingStateChange', (data) => {
Y
Yangys 已提交
925
  console.log('on interfaceSharingStateChange:' + JSON.stringify(data));
Z
zhuwenchao 已提交
926 927 928
});
```

Y
YOUR_NAME 已提交
929
## sharing.off('interfaceSharingStateChange')
Z
zhuwenchao 已提交
930

Y
Yangys 已提交
931 932
off(type: 'interfaceSharingStateChange', callback?: Callback\<{ type: SharingIfaceType, iface: string, state:
SharingIfaceState }>): void
Z
zhuwenchao 已提交
933 934 935

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

Y
YOUR_NAME 已提交
936 937
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
938 939
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
940
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
941 942 943 944 945

**参数:**

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

Y
Yangys 已提交
949 950 951 952 953 954 955
**错误码:**

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

Z
zhuwenchao 已提交
956 957 958
**示例:**

```js
Z
zhanghaifeng 已提交
959
sharing.off('interfaceSharingStateChange', (data) => {
Y
Yangys 已提交
960
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
961 962 963
});
```

Y
YOUR_NAME 已提交
964
## sharing.on('sharingUpstreamChange')
Z
zhuwenchao 已提交
965 966 967 968 969

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

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

Y
YOUR_NAME 已提交
970 971
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
972 973
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
974
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
975 976 977 978 979 980 981 982

**参数:**

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

Y
Yangys 已提交
983 984 985 986 987 988 989
**错误码:**

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

Z
zhuwenchao 已提交
990 991 992
**示例:**

```js
Y
Yangys 已提交
993
sharing.on('sharingUpstreamChange', (data) => {
Y
Yangys 已提交
994
  console.log('on sharingUpstreamChange:' + JSON.stringify(data));
Z
zhuwenchao 已提交
995 996 997
});
```

Y
YOUR_NAME 已提交
998
## sharing.off('sharingUpstreamChange')
Z
zhuwenchao 已提交
999 1000 1001 1002 1003

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

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

Y
YOUR_NAME 已提交
1004 1005
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
1006 1007
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

Y
YOUR_NAME 已提交
1008
**系统能力**:SystemCapability.Communication.NetManager.NetSharing
Z
zhuwenchao 已提交
1009 1010 1011 1012 1013 1014 1015 1016

**参数:**

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

Y
Yangys 已提交
1017 1018 1019 1020 1021 1022 1023
**错误码:**

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

Z
zhuwenchao 已提交
1024 1025 1026
**示例:**

```js
Z
zhanghaifeng 已提交
1027
sharing.off('sharingUpstreamChange', (data) => {
Y
Yangys 已提交
1028
  console.log(JSON.stringify(data));
Z
zhuwenchao 已提交
1029 1030 1031 1032 1033 1034 1035
});
```

## SharingIfaceState

网络共享状态。

Y
YOUR_NAME 已提交
1036 1037 1038
**系统接口**:此接口为系统接口。

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

Y
YOUR_NAME 已提交
1040
| 名称                  | 值   | 说明                   |
Z
zhuwenchao 已提交
1041 1042 1043 1044 1045 1046 1047
| ------------------------ | ---- | ---------------------- |
| SHARING_NIC_SERVING    | 1 | 正在网络共享。 |
| SHARING_NIC_CAN_SERVER | 2 | 可提供网络共享。 |
| SHARING_NIC_ERROR      | 3 | 网络共享错误。 |

## SharingIfaceType

Z
zhanghaifeng 已提交
1048
网络共享类型。
Z
zhuwenchao 已提交
1049

Y
YOUR_NAME 已提交
1050 1051 1052
**系统接口**:此接口为系统接口。

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

Y
YOUR_NAME 已提交
1054
| 名称                  | 值   | 说明                   |
Z
zhuwenchao 已提交
1055 1056 1057 1058
| ------------------------ | ---- | ---------------------- |
| SHARING_WIFI       | 0 | 网络共享类型Wi-Fi。 |
| SHARING_USB     | 1 | 网络共享类型USB。 |
| SHARING_BLUETOOTH    | 2 | 网络共享类型蓝牙。 |