# # @ohos.net.sharing (Network Sharing) The **sharing** module allows you to share your device's Internet connection with other connected devices by means of Wi-Fi hotspot, Bluetooth, and USB sharing. It also allows you to query the network sharing state and shared mobile data volume. > **NOTE** > > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import ```js import sharing from '@ohos.net.sharing' ``` ## sharing.isSharingSupported9+ isSharingSupported(callback: AsyncCallback\): void Checks whether network sharing is supported. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | callback | AsyncCallback\ | Yes | Callback used to return the result. The value **true** means that network sharing is supported, and **false** means the opposite.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | | 2202011 | Cannot get network sharing configuration. | **Example** ```js sharing.isSharingSupported((error, data) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## sharing.isSharingSupported9+ isSharingSupported(): Promise\ Checks whether network sharing is supported. This API uses a promise to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Return value** | Type | Description | | --------------------------------- | ------------------------------------- | | Promise\ | Promise used to return the result. The value **true** means that network sharing is supported, and **false** means the opposite.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | | 2202011 | Cannot get network sharing configuration. | **Example** ```js sharing.isSharingSupported().then(data => { console.log(JSON.stringify(data)); }).catch(error => { console.log(JSON.stringify(error)); }); ``` ## sharing.isSharing9+ isSharing(callback: AsyncCallback\): void Checks whether network sharing is in progress. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | callback | AsyncCallback\ | Yes | Callback used to return the result. The value **true** means that network sharing is in progress, and **false** means the opposite.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | | 2202011 | Cannot get network sharing configuration. | **Example** ```js sharing.isSharing((error, data) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## sharing.isSharing9+ isSharing(): Promise\ Checks whether network sharing is in progress. This API uses a promise to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Return value** | Type | Description | | --------------------------------- | ------------------------------------- | | Promise\ | Promise used to return the result. The value **true** means that network sharing is in progress, and **false** means the opposite.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | | 2202011 | Cannot get network sharing configuration. | **Example** ```js sharing.isSharing().then(data => { console.log(JSON.stringify(data)); }).catch(error => { console.log(JSON.stringify(error)); }); ``` ## sharing.startSharing9+ startSharing(type: SharingIfaceType, callback: AsyncCallback\): void Starts network sharing of a specified type. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | type | [SharingIfaceType](#sharingifacetype) | Yes | Sharing type. The value **0** means Wi-Fi hotspot sharing, **1** means USB sharing, and **2** means Bluetooth sharing.| | callback | AsyncCallback\ | Yes | Callback used to return the result.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 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. | **Example** ```js import SharingIfaceType from '@ohos.net.sharing' let SHARING_WIFI = 0; sharing.startSharing(SHARING_WIFI, (error) => { console.log(JSON.stringify(error)); }); ``` ## sharing.startSharing9+ startSharing(type: SharingIfaceType): Promise\ Starts network sharing of a specified type. This API uses a promise to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | type | [SharingIfaceType](#sharingifacetype) | Yes | Sharing type. The value **0** means Wi-Fi hotspot sharing, **1** means USB sharing, and **2** means Bluetooth sharing.| **Return value** | Type | Description | | --------------------------------- | ------------------------------------- | | Promise\ | Promise used to return the result.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 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. | **Example** ```js import SharingIfaceType from '@ohos.net.sharing' let SHARING_WIFI = 0; sharing.startSharing(SHARING_WIFI).then(() => { console.log("start wifi sharing successful"); }).catch(error => { console.log("start wifi sharing failed"); }); ``` ## sharing.stopSharing9+ stopSharing(type: SharingIfaceType, callback: AsyncCallback\): void Stops network sharing of a specified type. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | type | [SharingIfaceType](#sharingifacetype) | Yes | Sharing type. The value **0** means Wi-Fi hotspot sharing, **1** means USB sharing, and **2** means Bluetooth sharing.| | callback | AsyncCallback\ | Yes | Callback used to return the result.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 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. | | 2202011 | Cannot get network sharing configuration. | **Example** ```js import SharingIfaceType from '@ohos.net.sharing' let SHARING_WIFI = 0; sharing.stopSharing(SHARING_WIFI, (error) => { console.log(JSON.stringify(error)); }); ``` ## sharing.stopSharing9+ stopSharing(type: SharingIfaceType): Promise\ Stops network sharing of a specified type. This API uses a promise to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | type | [SharingIfaceType](#sharingifacetype) | Yes | Sharing type. The value **0** means Wi-Fi hotspot sharing, **1** means USB sharing, and **2** means Bluetooth sharing.| **Return value** | Type | Description | | --------------------------------- | ------------------------------------- | | Promise\ | Promise used to return the result.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 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. | | 2202011 | Cannot get network sharing configuration. | **Example** ```js import SharingIfaceType from '@ohos.net.sharing' let SHARING_WIFI = 0; sharing.stopSharing(SHARING_WIFI).then(() => { console.log("stop wifi sharing successful"); }).catch(error => { console.log("stop wifi sharing failed"); }); ``` ## sharing.getStatsRxBytes9+ getStatsRxBytes(callback: AsyncCallback\): void Obtains the volume of mobile data traffic received via network sharing. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | callback | AsyncCallback\ | Yes | Callback used to return the data volume, in KB.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | **Example** ```js sharing.getStatsRxBytes((error, data) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## sharing.getStatsRxBytes9+ getStatsRxBytes(): Promise\ Obtains the volume of mobile data traffic received via network sharing. This API uses a promise to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Return value** | Type | Description | | --------------------------------- | ------------------------------------- | | Promise\ | Promise used to return the data volume, in KB.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | **Example** ```js sharing.getStatsRxBytes().then(data => { console.log(JSON.stringify(data)); }).catch(error => { console.log(JSON.stringify(error)); }); ``` ## sharing.getStatsTxBytes9+ getStatsTxBytes(callback: AsyncCallback\): void Obtains the volume of mobile data traffic sent via network sharing. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | callback | AsyncCallback\ | Yes | Callback used to return the data volume, in KB.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | **Example** ```js sharing.getStatsTxBytes((error, data) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## sharing.getStatsTxBytes9+ getStatsTxBytes(): Promise\ Obtains the volume of mobile data traffic sent via network sharing. This API uses a promise to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Return value** | Type | Description | | --------------------------------- | ------------------------------------- | | Promise\ | Promise used to return the data volume, in KB.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | **Example** ```js sharing.getStatsTxBytes().then(data => { console.log(JSON.stringify(data)); }).catch(error => { console.log(JSON.stringify(error)); }); ``` ## sharing.getStatsTotalBytes9+ getStatsTotalBytes(callback: AsyncCallback\): void Obtains the volume of mobile data traffic sent and received via network sharing. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | callback | AsyncCallback\ | Yes | Callback used to return the data volume, in KB.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | **Example** ```js sharing.getStatsTotalBytes((error, data) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## sharing.getStatsTotalBytes9+ getStatsTotalBytes(): Promise\ Obtains the volume of mobile data traffic sent and received via network sharing. This API uses a promise to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Return value** | Type | Description | | --------------------------------- | ------------------------------------- | | Promise\ | Promise used to return the data volume, in KB.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | **Example** ```js sharing.getStatsTotalBytes().then(data => { console.log(JSON.stringify(data)); }).catch(error => { console.log(JSON.stringify(error)); }); ``` ## sharing.getSharingIfaces9+ getSharingIfaces(state: SharingIfaceState, callback: AsyncCallback\>): void Obtains the names of NICs in the specified network sharing state. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | state | [SharingIfaceState](#sharingifacestate) | Yes | Network sharing state.| | callback | AsyncCallback\> | Yes | Callback used to return an array of NIC names.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 401 | Parameter error. | | 2200001 | Invalid parameter value. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | **Example** ```js import SharingIfaceState from '@ohos.net.sharing' let SHARING_BLUETOOTH = 2; sharing.getSharingIfaces(SHARING_BLUETOOTH, (error, data) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## sharing.getSharingIfaces9+ getSharingIfaces(state: SharingIfaceState): Promise\> Obtains the names of NICs in the specified network sharing state. This API uses a promise to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | state | [SharingIfaceState](#sharingifacestate) | Yes | Network sharing state.| **Return value** | Type | Description | | --------------------------------- | ------------------------------------- | | Promise\> | Promise used to return an array of NIC names.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 401 | Parameter error. | | 2200001 | Invalid parameter value. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | **Example** ```js import SharingIfaceState from '@ohos.net.sharing' let SHARING_BLUETOOTH = 2; sharing.getSharingIfaces(SHARING_BLUETOOTH).then(data => { console.log(JSON.stringify(data)); }).catch(error => { console.log(JSON.stringify(error)); }); ``` ## sharing.getSharingState9+ getSharingState(type: SharingIfaceType, callback: AsyncCallback\): void Obtains the network sharing state of the specified type. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | type | [SharingIfaceType](#sharingifacetype) | Yes | Sharing type. The value **0** means Wi-Fi hotspot sharing, **1** means USB sharing, and **2** means Bluetooth sharing.| | callback | AsyncCallback\<[SharingIfaceState](#sharingifacestate)> | Yes | Callback used to return the network sharing state.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 401 | Parameter error. | | 2200001 | Invalid parameter value. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | **Example** ```js import SharingIfaceType from '@ohos.net.sharing' let SHARING_WIFI = 0; sharing.getSharingState(SHARING_WIFI, (error, data) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## sharing.getSharingState9+ getSharingState(type: SharingIfaceType): Promise\ Obtains the network sharing state of the specified type. This API uses a promise to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | type | [SharingIfaceType](#sharingifacetype) | Yes | Sharing type. The value **0** means Wi-Fi hotspot sharing, **1** means USB sharing, and **2** means Bluetooth sharing.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 401 | Parameter error. | | 2200001 | Invalid parameter value. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | **Return value** | Type | Description | | --------------------------------- | ------------------------------------- | | Promise\<[SharingIfaceState](#sharingifacestate)> | Promise used to return the network sharing state.| **Example** ```js import SharingIfaceType from '@ohos.net.sharing' let SHARING_WIFI = 0; sharing.getSharingState(SHARING_WIFI).then(data => { console.log(JSON.stringify(data)); }).catch(error => { console.log(JSON.stringify(error)); }); ``` ## sharing.getSharableRegexes9+ getSharableRegexes(type: SharingIfaceType, callback: AsyncCallback\>): void Obtains regular expressions of NICs of a specified type. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | type | [SharingIfaceType](#sharingifacetype) | Yes | Sharing type. The value **0** means Wi-Fi hotspot sharing, **1** means USB sharing, and **2** means Bluetooth sharing.| | callback | AsyncCallback\> | Yes | Callback used to return an array of regular expressions.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 401 | Parameter error. | | 2200001 | Invalid parameter value. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | **Example** ```js import SharingIfaceType from '@ohos.net.sharing' let SHARING_WIFI = 0; sharing.getSharableRegexes(SHARING_WIFI, (error, data) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## sharing.getSharableRegexes9+ getSharableRegexes(type: SharingIfaceType): Promise\> Obtains regular expressions of NICs of a specified type. This API uses a promise to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | type | [SharingIfaceType](#sharingifacetype) | Yes | Sharing type. The value **0** means Wi-Fi hotspot sharing, **1** means USB sharing, and **2** means Bluetooth sharing.| **Return value** | Type | Description | | --------------------------------- | ------------------------------------- | | Promise\> | Promise used to return an array of regular expressions.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 201 | Permission denied. | | 401 | Parameter error. | | 2200001 | Invalid parameter value. | | 2200002 | Operation failed. Cannot connect to service. | | 2200003 | System internal error. | **Example** ```js import SharingIfaceType from '@ohos.net.sharing' let SHARING_WIFI = 0; sharing.getSharableRegexes(SHARING_WIFI).then(data => { console.log(JSON.stringify(data)); }).catch(error => { console.log(JSON.stringify(error)); }); ``` ## sharing.on('sharingStateChange')9+ on(type: 'sharingStateChange', callback: Callback\): void Subscribes to network sharing state changes. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | type | string | Yes | Event name.| | callback | AsyncCallback\ | Yes | Callback invoked when the network sharing state changes.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 202 | Non-system applications use system APIs. | **Example** ```js sharing.on('sharingStateChange', (data) => { console.log('on sharingStateChange: ' + JSON.stringify(data)); }); ``` ## sharing.off('sharingStateChange')9+ off(type: 'sharingStateChange', callback?: Callback\): void Unsubscribes from network sharing state changes. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | type | string | Yes | Event name.| | callback | AsyncCallback\ | No | Callback invoked when the network sharing state changes.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 202 | Non-system applications use system APIs. | **Example** ```js sharing.off('sharingStateChange', (data) => { console.log(JSON.stringify(data)); }); ``` ## sharing.on('interfaceSharingStateChange')9+ on(type: 'interfaceSharingStateChange', callback: Callback\<{ type: SharingIfaceType, iface: string, state: SharingIfaceState }>): void Subscribes to network sharing state changes of a specified NIC. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | type | string | Yes | Event name.| | callback | AsyncCallback\<{ type: [SharingIfaceType](#sharingifacetype), iface: string, state: SharingIfaceState(#sharingifacestate) }> | Yes | Callback invoked when the network sharing state of the specified NIC changes.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 202 | Non-system applications use system APIs. | **Example** ```js sharing.on('interfaceSharingStateChange', (data) => { console.log('on interfaceSharingStateChange:' + JSON.stringify(data)); }); ``` ## sharing.off('interfaceSharingStateChange')9+ off(type: 'interfaceSharingStateChange', callback?: Callback\<{ type: SharingIfaceType, iface: string, state: SharingIfaceState }>): void Unsubscribes from network sharing status changes of a specified NIC. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | type | string | Yes | Event name.| | callback | AsyncCallback\<{ type: [SharingIfaceType](#sharingifacetype), iface: string, state: SharingIfaceState(#sharingifacestate) }> | No | Callback used to return the result.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 202 | Non-system applications use system APIs. | **Example** ```js sharing.off('interfaceSharingStateChange', (data) => { console.log(JSON.stringify(data)); }); ``` ## sharing.on('sharingUpstreamChange')9+ on(type: 'sharingUpstreamChange', callback: Callback\): void Subscribes to upstream network changes. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | type | string | Yes | Event name.| | callback | AsyncCallback\ | Yes | Callback invoked when the upstream network changes.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 202 | Non-system applications use system APIs. | **Example** ```js sharing.on('sharingUpstreamChange', (data) => { console.log('on sharingUpstreamChange:' + JSON.stringify(data)); }); ``` ## sharing.off('sharingUpstreamChange')9+ off(type: 'sharingUpstreamChange', callback?: Callback\): void Unsubscribes from upstream network changes. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL **System capability**: SystemCapability.Communication.NetManager.NetSharing **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ---------- | | type | string | Yes | Event name.| | callback | AsyncCallback\ | No | Callback used for unsubscription from upstream network changes.| **Error codes** | ID| Error Message | | ------- | -------------------------------------------- | | 202 | Non-system applications use system APIs. | **Example** ```js sharing.off('sharingUpstreamChange', (data) => { console.log(JSON.stringify(data)); }); ``` ## SharingIfaceState9+ Enumerates the network sharing states of an NIC. **System API**: This is a system API. **System capability**: SystemCapability.Communication.NetManager.NetSharing | Name | Value | Description | | ------------------------ | ---- | ---------------------- | | SHARING_NIC_SERVING | 1 | Network sharing is in progress.| | SHARING_NIC_CAN_SERVER | 2 | Network sharing is supported.| | SHARING_NIC_ERROR | 3 | An error occurred during network sharing.| ## SharingIfaceType9+ Enumerates the network sharing types of an NIC. **System API**: This is a system API. **System capability**: SystemCapability.Communication.NetManager.NetSharing | Name | Value | Description | | ------------------------ | ---- | ---------------------- | | SHARING_WIFI | 0 | Wi-Fi hotspot sharing.| | SHARING_USB | 1 | USB sharing.| | SHARING_BLUETOOTH | 2 | Bluetooth sharing.|