diff --git a/en/application-dev/reference/apis/Readme-EN.md b/en/application-dev/reference/apis/Readme-EN.md
index beab6e2411714274074d3e0cbdfb13cc60ba574b..1446d4fcef22eb94e6c4796be4e55fd0968c8e69 100644
--- a/en/application-dev/reference/apis/Readme-EN.md
+++ b/en/application-dev/reference/apis/Readme-EN.md
@@ -86,6 +86,7 @@
- bundle/[PermissionDef](js-apis-bundle-PermissionDef.md)
- bundle/[RemoteAbilityInfo](js-apis-bundle-remoteAbilityInfo.md)
- bundle/[ShortcutInfo(deprecated)](js-apis-bundle-ShortcutInfo.md)
+ - bundle/[PackInfo](js-apis-bundle-PackInfo.md)
- UI Page
- [@ohos.animator](js-apis-animator.md)
- [@ohos.mediaquery](js-apis-mediaquery.md)
@@ -133,7 +134,6 @@
- [@ohos.data.dataShare](js-apis-data-dataShare.md)
- [@ohos.data.dataSharePredicates](js-apis-data-dataSharePredicates.md)
- [@ohos.data.dataShareResultSet](js-apis-data-DataShareResultSet.md)
- - [@ohos.data.distributedData](js-apis-distributed-data.md)
- [@ohos.data.distributedDataObject](js-apis-data-distributedobject.md)
- [@ohos.data.preferences](js-apis-data-preferences.md)
- [@ohos.data.rdb](js-apis-data-rdb.md)
@@ -160,9 +160,13 @@
- [@ohos.telephony.sms](js-apis-sms.md)
- Network Management
- [@ohos.net.connection](js-apis-net-connection.md)
+ - [@ohos.net.ethernet](js-apis-net-ethernet.md)
- [@ohos.net.http](js-apis-http.md)
+ - [@ohos.net.policy](js-apis-net-policy.md)
+ - [@ohos.net.sharing](js-apis-net-sharing.md)
- [@ohos.net.socket](js-apis-socket.md)
-
+ - [@ohos.net.statistics](js-apis-net-statistics.md)
+ - [@ohos.net.tlsSocket](js-apis-tlsSocket.md)
- [@ohos.net.webSocket](js-apis-webSocket.md)
- [@ohos.request](js-apis-request.md)
- Connectivity
@@ -174,8 +178,8 @@
- [@ohos.rpc](js-apis-rpc.md)
- [@ohos.wifi](js-apis-wifi.md)
- [@ohos.wifiext](js-apis-wifiext.md)
- - [@ohos.nfc.tag](js-apis-nfctech.md)
- - [@ohos.nfc.tag](js-apis-tagSession.md)
+ - tag/[nfctech](js-apis-nfctech.md)
+ - tag/[tagSession](js-apis-tagSession.md)
- Basic Features
- [@ohos.accessibility](js-apis-accessibility.md)
- [@ohos.accessibility.config](js-apis-accessibility-config.md)
@@ -196,6 +200,7 @@
- [@ohos.systemTime](js-apis-system-time.md)
- [@ohos.systemTimer](js-apis-system-timer.md)
- [@ohos.wallpaper](js-apis-wallpaper.md)
+ - [console](js-apis-logs.md)
- [Timer](js-apis-timer.md)
- Device Management
@@ -257,6 +262,7 @@
- APIs No Longer Maintained
- [@ohos.bytrace](js-apis-bytrace.md)
- [@ohos.data.storage](js-apis-data-storage.md)
+ - [@ohos.data.distributedData](js-apis-distributed-data.md)
- [@ohos.prompt](js-apis-prompt.md)
- [@ohos.reminderAgent](js-apis-reminderAgent.md)
- [@system.app](js-apis-system-app.md)
@@ -278,4 +284,3 @@
- [@system.sensor](js-apis-system-sensor.md)
- [@system.storage](js-apis-system-storage.md)
- [@system.vibrator](js-apis-system-vibrate.md)
- - [console](js-apis-logs.md)
\ No newline at end of file
diff --git a/en/application-dev/reference/apis/js-apis-net-ethernet.md b/en/application-dev/reference/apis/js-apis-net-ethernet.md
new file mode 100644
index 0000000000000000000000000000000000000000..bf132f3c63710fc83b04a3411eb2477f2fe8b855
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-net-ethernet.md
@@ -0,0 +1,301 @@
+# Ethernet Connection Management
+
+The Ethernet Connection Management module provides wired network capabilities, which allow users to set the IP address, subnet mask, gateway, and Domain Name System (DNS) server of a wired network.
+
+> **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 ethernet from '@ohos.net.ethernet'
+```
+
+## ethernet.setIfaceConfig
+
+setIfaceConfig(iface: string, ic: InterfaceConfiguration, callback: AsyncCallback\): void;
+
+Sets the network interface configuration. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | ------------------------------------------------- | ---- | ------------------------------------------ |
+| iface | string | Yes | Name of the network interface. |
+| ic | [InterfaceConfiguration](#interfaceconfiguration) | Yes | Network interface configuration to set. |
+| callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, the return result is empty. If the operation fails, an error code is returned.|
+
+**Example**
+
+```js
+ethernet.setIfaceConfig("eth0", {mode:ethernet.STATIC,ipAddr:"192.168.1.123", routeAddr:"192.168.1.1",
+ gateAddr:"192.168.1.1", maskAddr:"255.255.255.0", dnsAddr0:"1.1.1.1", dnsAddr1:"2.2.2.2"},
+ (error) => {
+ if (error) {
+ console.log("setIfaceConfig callback error = " + error);
+ } else {
+ console.log("setIfaceConfig callback ok ");
+ }
+ });
+```
+
+## ethernet.setIfaceConfig
+
+setIfaceConfig(iface: string, ic: InterfaceConfiguration): Promise\;
+
+Sets the network interface configuration. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name| Type | Mandatory| Description |
+| ------ | ------------------------------------------------- | ---- | ------------------------ |
+| iface | string | Yes | Name of the network interface. |
+| ic | [InterfaceConfiguration](#interfaceconfiguration) | Yes | Network interface configuration to set.|
+
+**Return value**
+
+| Type | Description |
+| ------------------- | ----------------------------------------------------------- |
+| Promise\ | Promise that returns no value.|
+
+**Example**
+
+```js
+ethernet.setIfaceConfig("eth0", {mode:ethernet.STATIC,ipAddr:"192.168.1.123", routeAddr:"192.168.1.1",
+ gateAddr:"192.168.1.1", maskAddr:"255.255.255.0", dnsAddr0:"1.1.1.1", dnsAddr1:"2.2.2.2"}).then(() => {
+ console.log("setIfaceConfig promiss ok ");
+}).catch((error) => {
+ console.log("setIfaceConfig promiss error = " + error);
+});
+```
+
+## ethernet.getIfaceConfig
+
+getIfaceConfig(iface: string, callback: AsyncCallback\): void;
+
+Obtains the configuration of a network interface. This API uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.GET_NETWORK_INFO
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory | Description |
+| -------- | ----------------------------------------------- | ----- | ------------ |
+| iface | string | Yes | Name of the network interface.|
+| callback | AsyncCallback\<[InterfaceConfiguration](#interfaceconfiguration)> | Yes | Callback used to return the configuration. |
+
+**Example**
+
+```js
+ethernet.getIfaceConfig("eth0", (error, value) => {
+ if (error) {
+ console.log("getIfaceConfig callback error = " + error);
+ } else {
+ console.log("getIfaceConfig callback mode = " + value.mode);
+ console.log("getIfaceConfig callback ipAddr = " + value.ipAddr);
+ console.log("getIfaceConfig callback routeAddr = " + value.routeAddr);
+ console.log("getIfaceConfig callback gateAddr = " + value.gateAddr);
+ console.log("getIfaceConfig callback maskAddr = " + value.maskAddr);
+ console.log("getIfaceConfig callback dns0Addr = " + value.dns0Addr);
+ console.log("getIfaceConfig callback dns1Addr = " + value.dns1Addr);
+ }
+});
+```
+
+## ethernet.getIfaceConfig
+
+getIfaceConfig(iface: string): Promise\;
+
+Obtains the configuration of a network interface. This API uses a promise to return the result.
+
+**Required permission**: ohos.permission.GET_NETWORK_INFO
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ------------ |
+| iface | string | Yes | Name of the network interface.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ---------------------------------- |
+| Promise\<[InterfaceConfiguration](#interfaceconfiguration)> | Promise used to return the configuration. |
+
+**Example**
+
+```js
+ethernet.getIfaceConfig("eth0").then((data) => {
+ console.log("getIfaceConfig promiss mode = " + data.mode);
+ console.log("getIfaceConfig promiss ipAddr = " + data.ipAddr);
+ console.log("getIfaceConfig promiss routeAddr = " + data.routeAddr);
+ console.log("getIfaceConfig promiss gateAddr = " + data.gateAddr);
+ console.log("getIfaceConfig promiss maskAddr = " + data.maskAddr);
+ console.log("getIfaceConfig promiss dns0Addr = " + data.dns0Addr);
+ console.log("getIfaceConfig promiss dns1Addr = " + data.dns1Addr);
+}).catch((error) => {
+ console.log("getIfaceConfig promiss error = " + error);
+});
+```
+
+## ethernet.isIfaceActive
+
+isIfaceActive(iface?: string, callback: AsyncCallback\): void;
+
+Checks whether a network interface is active. This API uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.GET_NETWORK_INFO
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------- | ---- | -------------------------------------------------- |
+| iface | string | No | Name of the network interface. If this parameter is left empty, the API checks for any active network interface. |
+| callback | AsyncCallback\ | Yes | Callback used to return the result. The value **1** means that the network interface is active, **0** means that the network interface is inactive, and any other value means that an error has occurred.|
+
+**Example**
+
+```js
+ethernet.isIfaceActive("eth0", (error, value) => {
+ if (error) {
+ console.log("whether2Activate callback error = " + error);
+ } else {
+ console.log("whether2Activate callback = " + value);
+ }
+});
+```
+
+## ethernet.isIfaceActive
+
+isIfaceActive(iface?: string): Promise\;
+
+Checks whether a network interface is active. This API uses a promise to return the result.
+
+**Required permission**: ohos.permission.GET_NETWORK_INFO
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name| Type | Mandatory| Description |
+| ------ | ------ | ---- | -------------------------------------- |
+| iface | string | No | Name of the network interface. If this parameter is left empty, the API checks for any active network interface.|
+
+**Return value**
+
+| Type | Description |
+| ----------------| ------------------------------------------------------------------ |
+| Promise\ | Promise used to return the result. The value **1** means that the network interface is active, **0** means that the network interface is inactive, and any other value means that an error has occurred.|
+
+**Example**
+
+```js
+ethernet.isIfaceActive("eth0").then((data) => {
+ console.log("isIfaceActive promiss = " + data);
+}).catch((error) => {
+ console.log("isIfaceActive promiss error = " + error);
+});
+```
+
+## ethernet.getAllActiveIfaces
+
+getAllActiveIfaces(callback: AsyncCallback\>): void;
+
+Obtains all active network interfaces. This API uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.GET_NETWORK_INFO
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | ------------------------------------ | ---- | ------------------------------ |
+| callback | AsyncCallback\> | Yes | Callback used to return all the active network interface names obtained.|
+
+**Example**
+
+```js
+ethernet.getAllActiveIfaces((error, value) => {
+ if (error) {
+ console.log("getAllActiveIfaces callback error = " + error);
+ } else {
+ console.log("getAllActiveIfaces callback value.length = " + value.length);
+ for (let i = 0; i < value.length; i++) {
+ console.log("getAllActiveIfaces callback = " + value[i]);
+ }
+ }
+});
+```
+
+## ethernet.getAllActiveIfaces
+
+getAllActiveIfaces(): Promise\>;
+
+Obtains all active network interfaces. This API uses a promise to return the result.
+
+**Required permission**: ohos.permission.GET_NETWORK_INFO
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+**Return value**
+
+| Type | Description |
+| ------------------------------ | ----------------------------------------------- |
+| Promise\> | Promise used to return all the active network interface names obtained.|
+
+**Example**
+
+```js
+ethernet.getAllActiveIfaces().then((data) => {
+ console.log("getAllActiveIfaces promiss data.length = " + data.length);
+ for (let i = 0; i < data.length; i++) {
+ console.log("getAllActiveIfaces promiss = " + data[i]);
+ }
+}).catch((error) => {
+ console.log("getAllActiveIfaces promiss error = " + error);
+});
+```
+
+## InterfaceConfiguration
+
+Defines the network configuration for the Ethernet connection.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+| Name | Type | Description |
+| ----------------------- | ----------------------------------- | ------------------------------------------------------------ |
+| mode | [IPSetMode](#ipsetmode) | Configuration mode of the Ethernet connection.|
+| ipAddr | string | Static IP address of the Ethernet connection. The value must be an IPv4 address, which is a 32-bit number displayed in dotted decimal notation and each 8-bit field ranges from 0 to 255. This parameter does not need to be configured in Dynamic Host Configuration Protocol (DHCP) mode.|
+| route | string | Route of the Ethernet connection. The value must be an IPv4 address. This parameter does not need to be configured in DHCP mode.|
+| gateway | string | Gateway of the Ethernet connection. The value must be an IPv4 address. This parameter does not need to be configured in DHCP mode.|
+| netMask | string | Subnet mask of the Ethernet connection. The value must be an IPv4 address. This parameter does not need to be configured in DHCP mode.|
+| dnsServers | string | DNS server addresses of the Ethernet connection. The value must be an IPv4 address. This parameter does not need to be configured in DHCP mode. Multiple addresses are separated by commas (,).|
+
+## IPSetMode
+
+Defines the configuration mode of the Ethernet connection.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+| Name | Value | Description |
+| ------------------------ | ---- | ---------------------- |
+| STATIC | 0 | Static configuration.|
+| DHCP | 1 | Dynamic configuration.|
diff --git a/en/application-dev/reference/apis/js-apis-net-policy.md b/en/application-dev/reference/apis/js-apis-net-policy.md
new file mode 100644
index 0000000000000000000000000000000000000000..4537266a60faa11243140aee10a7f9d9a36bfa7b
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-net-policy.md
@@ -0,0 +1,1120 @@
+# Network Policy Management
+
+The Network Policy Management module provides APIs for managing network policies, through which you can control and manage the data volume used.
+
+> **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 policy from '@ohos.net.policy'
+```
+
+## policy.setBackgroundPolicy
+
+setBackgroundPolicy(isAllowed: boolean, callback: AsyncCallback\): void
+
+Sets a background network policy. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| isAllowed | boolean | Yes | Whether applications running in the background are allowed to use mobile data.|
+| callback | AsyncCallback\ | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+policy.setBackgroundPolicy(Boolean(Number.parseInt(this.isBoolean))), (err, data) => {
+ this.callBack(err, data);
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+});
+```
+
+## policy.setBackgroundPolicy
+
+setBackgroundPolicy(isAllowed: boolean): Promise\
+
+Sets a background network policy. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| isAllowed | boolean | Yes | Whether applications running in the background are allowed to use mobile data.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the result.|
+
+**Example**
+
+```js
+policy.setBackgroundPolicy(Boolean(Number.parseInt(this.isBoolean))).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+```
+
+## policy.getBackgroundPolicy
+
+getBackgroundPolicy(callback: AsyncCallback\): void;
+
+Obtains the background network policy. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the result. If **true** is returned, applications running in the background are allowed to use mobile data.|
+
+**Example**
+
+```js
+policy.getBackgroundPolicy((err, data) => {
+ this.callBack(err, data);
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+});
+```
+
+## policy.getBackgroundPolicy
+
+getBackgroundPolicy(): Promise\;
+
+Obtains the background network policy. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the result.|
+
+**Example**
+
+```js
+policy.getBackgroundPolicy().then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+
+```
+
+## policy.setPolicyByUid
+
+setPolicyByUid(uid: number, policy: NetUidPolicy, callback: AsyncCallback\): void;
+
+Sets an application-specific network policy. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes | Unique ID of the application.|
+| policy | [NetUidPolicy](#netuidpolicy) | Yes| Application-specific network policy to set.|
+| callback | AsyncCallback\ | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+let param = {
+ uid: Number.parseInt(this.firstParam), policy: Number.parseInt(this.currentNetUidPolicy)
+}
+policy.setPolicyByUid(Number.parseInt(this.firstParam), Number.parseInt(this.currentNetUidPolicy), (err, data) => {
+ this.callBack(err, data);
+});
+```
+
+## policy.setPolicyByUid
+
+setPolicyByUid(uid: number, policy: NetUidPolicy): Promise\;
+
+Sets an application-specific network policy. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes | Unique ID of the application.|
+| policy | [NetUidPolicy](#netuidpolicy) | Yes| Application-specific network policy to set.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the result.|
+
+**Example**
+
+```js
+let param = {
+ uid: Number.parseInt(this.firstParam), policy: Number.parseInt(this.currentNetUidPolicy)
+}
+policy.setPolicyByUid(Number.parseInt(this.firstParam), Number.parseInt(this.currentNetUidPolicy)).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+
+```
+
+## policy.getPolicyByUid
+
+getPolicyByUid(uid: number, callback: AsyncCallback\): void;
+
+Obtains an application-specific network policy by **uid**. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes| Unique ID of the application.|
+| callback | AsyncCallback\<[NetUidPolicy](#netuidpolicy)> | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+policy.getPolicyByUid(Number.parseInt(this.firstParam), (err, data) => {
+ this.callBack(err, data);
+});
+```
+
+## policy.getPolicyByUid
+
+getPolicyByUid(uid: number): Promise\;
+
+Obtains an application-specific network policy by **uid**. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes| Unique ID of the application.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\<[NetUidPolicy](#netuidpolicy)> | Promise used to return the result.|
+
+**Example**
+
+```js
+policy.getPolicyByUid(Number.parseInt(this.firstParam)).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+
+```
+
+## policy.getUidsByPolicy
+
+getUidsByPolicy(policy: NetUidPolicy, callback: AsyncCallback\>): void;
+
+Obtains the UID array of applications configured with a certain application-specific network policy. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| policy | [NetUidPolicy](#netuidpolicy) | Yes| Target application-specific network policy.|
+| callback | AsyncCallback\> | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+policy.getUidsByPolicy(Number.parseInt(this.currentNetUidPolicy), (err, data) => {
+ this.callBack(err, data);
+});
+```
+
+## policy.getUidsByPolicy
+
+function getUidsByPolicy(policy: NetUidPolicy): Promise\>;
+
+Obtains the UID array of applications configured with a certain application-specific network policy. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| policy | [NetUidPolicy](#netuidpolicy) | Yes| Target application-specific network policy.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\> | Promise used to return the result.|
+
+**Example**
+
+```js
+policy.getUidsByPolicy(Number.parseInt(this.firstParam)).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+
+```
+
+## policy.getNetQuotaPolicies
+
+getNetQuotaPolicies(callback: AsyncCallback\>): void;
+
+Obtains the network quota policies. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| callback | AsyncCallback\> | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+policy.getNetQuotaPolicies((err, data) => {
+ this.callBack(err, data);
+});
+```
+
+## policy.getNetQuotaPolicies
+
+getNetQuotaPolicies(): Promise\>;
+
+Obtains the network quota policies. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\> | Promise used to return the result.|
+
+**Example**
+
+```js
+policy.getNetQuotaPolicies().then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+
+```
+
+## policy.setNetQuotaPolicies
+
+setNetQuotaPolicies(quotaPolicies: Array\, callback: AsyncCallback\): void;
+
+Sets an array of network quota policies. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| quotaPolicies | Array\<[NetQuotaPolicy](#netquotapolicy)> | Yes| An array of network quota policies to set.|
+| callback | AsyncCallback\ | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+let param = {netType:Number.parseInt(this.netType), iccid:this.iccid, ident:this.ident, periodDuration:this.periodDuration, warningBytes:Number.parseInt(this.warningBytes),
+ limitBytes:Number.parseInt(this.limitBytes), lastWarningRemind:this.lastWarningRemind, lastLimitRemind:this.lastLimitRemind, metered:Boolean(Number.parseInt(this.metered)), limitAction:this.limitAction};
+this.netQuotaPolicyList.push(param);
+
+policy.setNetQuotaPolicies(this.netQuotaPolicyList, (err, data) => {
+ this.callBack(err, data);
+});
+```
+
+## policy.setNetQuotaPolicies
+
+setNetQuotaPolicies(quotaPolicies: Array\): Promise\;
+
+Sets an array of network quota policies. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| quotaPolicies | Array\<[NetQuotaPolicy](#netquotapolicy)> | Yes| An array of network quota policies to set.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the result.|
+
+**Example**
+
+```js
+let param = {netType:Number.parseInt(this.netType), iccid:this.iccid, ident:this.ident, periodDuration:this.periodDuration, warningBytes:Number.parseInt(this.warningBytes),
+ limitBytes:Number.parseInt(this.limitBytes), lastWarningRemind:this.lastWarningRemind, lastLimitRemind:this.lastLimitRemind, metered:Boolean(Number.parseInt(this.metered)), limitAction:this.limitAction};
+this.netQuotaPolicyList.push(param);
+
+policy.setNetQuotaPolicies(this.netQuotaPolicyList).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+```
+
+## policy.restoreAllPolicies
+
+restoreAllPolicies(iccid: string, callback: AsyncCallback\): void;
+
+Restores all the policies (cellular network, background network, firewall, and application-specific network policies) for the given SIM card. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| iccid | string | Yes| SIM card ID.|
+| callback | AsyncCallback\ | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+this.firstParam = iccid;
+policy.restoreAllPolicies(this.firstParam, (err, data) => {
+ this.callBack(err, data);
+});
+```
+
+## policy.restoreAllPolicies
+
+restoreAllPolicies(iccid: string): Promise\;
+
+Restores all the policies (cellular network, background network, firewall, and application-specific network policies) for the given SIM card. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| iccid | string | Yes| SIM card ID.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the result.|
+
+**Example**
+
+```js
+this.firstParam = iccid;
+policy.restoreAllPolicies(this.firstParam).then((err, data){
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+
+```
+
+## policy.isUidNetAllowed
+
+isUidNetAllowed(uid: number, isMetered: boolean, callback: AsyncCallback\): void;
+
+Checks whether an application is allowed to access metered networks. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes| Unique ID of the application.|
+| isMetered | boolean | Yes| Whether the network is a metered network.|
+| callback | AsyncCallback\ | Yes | Callback used to return the result. The value **true** means that the application is allowed to access metered networks, and **false** means the opposite.|
+
+**Example**
+
+```js
+
+let param = {
+ uid: Number.parseInt(this.firstParam), isMetered: Boolean(Number.parseInt(this.isBoolean))
+}
+policy.isUidNetAllowed(Number.parseInt(this.firstParam), Boolean(Number.parseInt(this.isBoolean)), (err, data) => {
+ this.callBack(err, data);
+});
+```
+
+## policy.isUidNetAllowed
+
+isUidNetAllowed(uid: number, isMetered: boolean): Promise\;
+
+Checks whether an application is allowed to access metered networks. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes| Unique ID of the application.|
+| isMetered | boolean | Yes| Whether the network is a metered network.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the result.|
+
+**Example**
+
+```js
+
+let param = {
+ uid: Number.parseInt(this.firstParam), isMetered: Boolean(Number.parseInt(this.isBoolean))
+}
+policy.isUidNetAllowed(Number.parseInt(this.firstParam), Boolean(Number.parseInt(this.isBoolean))).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+
+```
+
+## policy.isUidNetAllowed
+
+isUidNetAllowed(uid: number, iface: string, callback: AsyncCallback\): void;
+
+Checks whether an application is allowed to access the given network. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes| Unique ID of the application.|
+| iface | string | Yes| Name of the target network.|
+| callback | AsyncCallback\ | Yes | Callback used to return the result. The value **true** means that the application is allowed to access the given network, and **false** means the opposite.|
+
+**Example**
+
+```js
+
+let param = {
+ uid: Number.parseInt(this.firstParam), iface: this.secondParam
+}
+policy.isUidNetAllowed(Number.parseInt(this.firstParam), this.secondParam, (err, data) => {
+ this.callBack(err, data);
+});
+```
+
+## policy.isUidNetAllowed
+
+isUidNetAllowed(uid: number, iface: string): Promise\;
+
+Checks whether an application is allowed to access the given network. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes| Unique ID of the application.|
+| iface | string | Yes| Name of the target network.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the result.|
+
+**Example**
+
+```js
+let param = {
+ uid: Number.parseInt(this.firstParam), iface: this.secondParam
+}
+policy.isUidNetAllowed(Number.parseInt(this.firstParam), this.secondParam).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+
+```
+
+## policy.setDeviceIdleAllowlist
+
+setDeviceIdleAllowList(uid: number, isAllowed: boolean, callback: AsyncCallback\): void;
+
+Sets whether to add an application to the device idle allowlist. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes| Unique ID of the application.|
+| isAllowed | boolean | Yes| Whether to add the application to the allowlist.|
+| callback | callback: AsyncCallback\ | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+let param = {
+ uid: Number.parseInt(this.firstParam), isAllowed: Boolean(Number.parseInt(this.isBoolean))
+}
+policy.setDeviceIdleAllowList(Number.parseInt(this.firstParam), Boolean(Number.parseInt(this.isBoolean)), (err, data) => {
+ this.callBack(err, data);
+});
+```
+
+## policy.setDeviceIdleAllowlist
+
+setDeviceIdleAllowList(uid: number, isAllowed: boolean): Promise\;
+
+Sets whether to add an application to the device idle allowlist. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes| Unique ID of the application.|
+| isAllowed | boolean | Yes| Whether to add the application to the allowlist.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the result.|
+
+**Example**
+
+```js
+let param = {
+ uid: Number.parseInt(this.firstParam), isAllowed: Boolean(Number.parseInt(this.isBoolean))
+}
+policy.setDeviceIdleAllowList(Number.parseInt(this.firstParam), Boolean(Number.parseInt(this.isBoolean))).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+
+```
+
+## policy.getDeviceIdleAllowlist
+
+getDeviceIdleAllowList(callback: AsyncCallback\>): void;
+
+Obtains the UID array of applications that are on the device idle allowlist. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| callback | AsyncCallback\> | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+policy.getDeviceIdleAllowList((err, data) => {
+ this.callBack(err, data);
+});
+```
+
+## policy.getDeviceIdleAllowlist
+
+getDeviceIdleAllowList(): Promise\>;
+
+Obtains the UID array of applications that are on the device idle allowlist. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\> | Promise used to return the result.|
+
+**Example**
+
+```js
+policy.getDeviceIdleAllowList().then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+```
+
+## policy.getBackgroundPolicyByUid
+
+getBackgroundPolicyByUid(uid: number, callback: AsyncCallback\): void;
+
+Obtains the background network policies configured for the given application. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes| Unique ID of the application.|
+| callback | AsyncCallback\<[NetBackgroundPolicy](#netbackgroundpolicy)> | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+this.firstParam = uid
+policy.getBackgroundPolicyByUid(Number.parseInt(this.firstParam), (err, data) => {
+ this.callBack(err, data);
+});
+```
+
+## policy.getBackgroundPolicyByUid
+
+getBackgroundPolicyByUid(uid: number): Promise\;
+
+Obtains the background network policies configured for the given application. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes| Unique ID of the application.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\<[NetBackgroundPolicy](#netbackgroundpolicy)> | Promise used to return the result.|
+
+**Example**
+
+```js
+this.firstParam = uid
+policy.getBackgroundPolicyByUid(Number.parseInt(this.firstParam)).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+```
+
+## policy.resetPolicies
+
+resetPolicies(iccid: string, callback: AsyncCallback\): void;
+
+Resets the policies (cellular network, background network, firewall, and application-specific network policies) for the given SIM card. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| iccid | string | Yes| SIM card ID.|
+| callback | AsyncCallback\ | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+this.firstParam = iccid
+policy.resetPolicies(this.firstParam, (err, data) => {
+ this.callBack(err, data);
+});
+```
+
+## policy.resetPolicies
+
+resetPolicies(iccid: string): Promise\;
+
+Resets the policies (cellular network, background network, firewall, and application-specific network policies) for the given SIM card. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| iccid | string | Yes| SIM card ID.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the result.|
+
+**Example**
+
+```js
+policy.getUidsByPolicy(Number.parseInt(this.firstParam)).then((err, data) {
+
+})
+this.firstParam = iccid
+policy.resetPolicies(this.firstParam).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+
+```
+
+## policy.updateRemindPolicy
+
+updateRemindPolicy(netType: NetBearType, iccid: string, remindType: RemindType, callback: AsyncCallback\): void;
+
+Updates a reminder policy. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| netType | [NetBearType](js-apis-net-connection.md#netbeartype) | Yes| Network type.|
+| iccid | string | Yes| SIM card ID.|
+| remindType | [RemindType](#remindtype) | Yes| Reminder type.|
+| callback | AsyncCallback\ | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+let param = {
+ netType: Number.parseInt(this.netType), iccid: this.firstParam, remindType: this.currentRemindType
+}
+policy.updateRemindPolicy(Number.parseInt(this.netType), this.firstParam, Number.parseInt(this.currentRemindType), (err, data) => {
+ this.callBack(err, data);
+});
+```
+
+## policy.updateRemindPolicy
+
+updateRemindPolicy(netType: NetBearType, iccid: string, remindType: RemindType): Promise\;
+
+Updates a reminder policy. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| netType | [NetBearType](js-apis-net-connection.md#netbeartype) | Yes| Network type.|
+| iccid | string | Yes| SIM card ID.|
+| remindType | [RemindType](#remindtype) | Yes| Reminder type.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the result.|
+
+**Example**
+
+```js
+let param = {
+ netType: Number.parseInt(this.netType), iccid: this.firstParam, remindType: this.currentRemindType
+}
+policy.updateRemindPolicy(Number.parseInt(this.netType), this.firstParam, Number.parseInt(this.currentRemindType)).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+
+```
+
+## policy.on
+
+Functions as the handle to a network policy.
+
+### on('netUidPolicyChange')
+
+on(type: "netUidPolicyChange", callback: Callback\<{ uid: number, policy: NetUidPolicy }>): void;
+
+Subscribes to policy changes. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
+| type | netUidPolicyChange | Yes| Event type. The value **netUidPolicyChange** indicates a policy change event.|
+| callback | Callback\<{ uid: number, policy: [NetUidPolicy](#netuidpolicy) }> | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+policy.on('netUidPolicyChange', (data) => {
+ this.log('on netUidPolicyChange: ' + JSON.stringify(data));
+})
+```
+
+### on('netUidRuleChange')
+
+on(type: "netUidRuleChange", callback: Callback\<{ uid: number, rule: NetUidRule }>): void;
+
+Subscribes to rule changes. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
+| type | netUidRuleChange | Yes| Event type. The value **netUidRuleChange** indicates a rule change event.|
+| callback | Callback\<{ uid: number, rule: [NetUidRule](#netuidrule) }> | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+policy.on('netUidRuleChange', (data) => {
+ this.log('on netUidRuleChange: ' + JSON.stringify(data));
+})
+```
+
+### on('netMeteredIfacesChange')
+
+on(type: "netMeteredIfacesChange", callback: Callback\>): void;
+
+Subscribes to metered network name (specified by **iface**) changes. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
+| type | netMeteredIfacesChange | Yes| Event type. The value **netMeteredIfacesChange** indicates a metered network name change event.|
+| callback | Callback\> | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+policy.on('netMeteredIfacesChange', (data) => {
+ this.log('on netMeteredIfacesChange: ' + JSON.stringify(data));
+})
+```
+
+### on('netQuotaPolicyChange')
+
+on(type: "netQuotaPolicyChange", callback: Callback\>): void;
+
+Subscribes to network quota policy changes. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
+| type | netQuotaPolicyChange | Yes| Event type. The value **netQuotaPolicyChange** indicates a network quota policy change event.|
+| callback | Callback\> | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+policy.on('netQuotaPolicyChange', (data) => {
+ this.log('on netQuotaPolicyChange: ' + JSON.stringify(data));
+})
+```
+
+### on('netBackgroundPolicyChange')
+
+on(type: "netBackgroundPolicyChange", callback: Callback\): void;
+
+Subscribes to background network policy changes. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
+| type | netBackgroundPolicyChange | Yes| Event type. The value **netBackgroundPolicyChange** indicates a background network policy change event.|
+| callback | Callback\ | Yes | Callback used to return the result.|
+
+**Example**
+
+```js
+policy.on('netBackgroundPolicyChange', (data) => {
+ this.log('on netBackgroundPolicyChange: ' + JSON.stringify(data));
+})
+```
+
+## NetBackgroundPolicy
+
+Enumerates the background network policies.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+| Name | Value | Description |
+| ------------------------ | ---- | ---------------------- |
+| NET_BACKGROUND_POLICY_NONE | 0 | Default policy.|
+| NET_BACKGROUND_POLICY_ENABLE | 1 | Applications running in the background are allowed to access metered networks.|
+| NET_BACKGROUND_POLICY_DISABLE | 2 | Applications running in the background are not allowed to access metered networks.|
+| NET_BACKGROUND_POLICY_ALLOW_LIST | 3 | Only applications on the device idle allowlist are allowed to access metered networks when they are running in the background.|
+
+## NetQuotaPolicy
+
+Defines a network quota policy.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+| Name | Type | Description |
+| ----------------------- | ----------------------------------- | ------------------------------------------------------------ |
+| netType | [NetBearType](js-apis-net-connection.md#netbeartype) | Network type.|
+| iccid | string | Identifier of the SIM card on the metered cellular network. It is not used for Wi-Fi networks.|
+| ident | string | Identifier of the SIM card on the metered cellular network. It is used for Wi-Fi networks. It is used together with **iccid**.|
+| periodDuration | string | Start time of metering.|
+| warningBytes | number | Data volume threshold for generating an alarm.|
+| limitBytes | number | Data volume quota.|
+| lastWarningRemind | string | Last time when an alarm was generated.|
+| lastLimitRemind | string | Last time when the quota was exhausted.|
+| metered | string | Whether the network is a metered network.|
+| limitAction | [LimitAction](#limitaction) | Action to take when the data volume quota is reached.|
+
+## LimitAction
+
+Enumerates the actions that can be taken when the data volume quota is reached.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+| Name | Value| Description |
+| ---------------------- | ----- | ------------ |
+| LIMIT_ACTION_NONE | -1 | Default action.|
+| LIMIT_ACTION_DISABLE | 0 | Internet access is disabled.|
+| LIMIT_ACTION_AUTO_BILL| 1 | Users will be automatically charged for the data volume they use.|
+
+## NetUidRule
+
+Enumerates the metered network rules.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+| Name | Value| Description |
+| ---------------------- | ----- | ------------ |
+| NET_RULE_NONE | 0 | Default rule.|
+| NET_RULE_ALLOW_METERED_FOREGROUND | 1 | Applications running in the foreground are allowed to access metered networks.|
+| NET_RULE_ALLOW_METERED | 2 | Applications are allowed to access metered networks.|
+| NET_RULE_REJECT_METERED | 4 | Applications are not allowed to access metered networks.|
+| NET_RULE_ALLOW_ALL | 32 | Applications are allowed to access all networks (metered or non-metered).|
+| NET_RULE_REJECT_ALL | 64 | Applications are not allowed to access any networks (metered or non-metered).|
+
+## RemindType
+
+Enumerates the reminder types.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+| Name | Value| Description |
+| ---------------------- | - | ------- |
+| REMIND_TYPE_WARNING | 1 | Warning.|
+| REMIND_TYPE_LIMIT | 2 | Limit.|
+
+## NetUidPolicy
+
+Enumerates the application-specific network policies.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+| Name | Value| Description |
+| ---------------------- | ----- | ------------ |
+| NET_POLICY_NONE | 0 | Default network policy.|
+| NET_POLICY_ALLOW_METERED_BACKGROUND | 1 | Applications running in the background are allowed to access metered networks.|
+| NET_POLICY_REJECT_METERED_BACKGROUND | 2 | Applications running in the background are not allowed to access metered networks.|
diff --git a/en/application-dev/reference/apis/js-apis-net-sharing.md b/en/application-dev/reference/apis/js-apis-net-sharing.md
new file mode 100644
index 0000000000000000000000000000000000000000..23284aeb1715a3f8aed9ec7b2d79ad55d1408319
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-net-sharing.md
@@ -0,0 +1,746 @@
+# Network Sharing Management
+
+The Network Sharing Management 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.isSharingSupported
+
+isSharingSupported(callback: AsyncCallback\): void
+
+Checks whether network sharing is supported. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**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.|
+
+**Example**
+
+```js
+sharing.isSharingSupported((error, data) => {
+ console.log(JSON.stringify(error));
+ console.log(JSON.stringify(data));
+});
+```
+
+## sharing.isSharingSupported
+
+isSharingSupported(): Promise\
+
+Checks whether network sharing is supported. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**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.|
+
+**Example**
+
+```js
+sharing.isSharingSupported().then(data => {
+ console.log(JSON.stringify(data));
+}).catch(error => {
+ console.log(JSON.stringify(error));
+});
+```
+
+## sharing.isSharing
+
+isSharing(callback: AsyncCallback\): void
+
+Checks whether network sharing is in progress. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**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.|
+
+**Example**
+
+```js
+sharing.isSharing((error, data) => {
+ console.log(JSON.stringify(error));
+ console.log(JSON.stringify(data));
+});
+```
+
+## sharing.isSharing
+
+isSharing(): Promise\
+
+Checks whether network sharing is in progress. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**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.|
+
+**Example**
+
+```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
+
+Starts network sharing of a specified type. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**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.|
+
+**Example**
+
+```js
+import SharingIfaceType from '@ohos.net.sharing'
+sharing.startSharing(SharingIfaceType.SHARING_WIFI, (error) => {
+ console.log(JSON.stringify(error));
+});
+```
+
+## sharing.startSharing
+
+startSharing(type: SharingIfaceType): Promise\
+
+Starts network sharing of a specified type. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**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.|
+
+**Example**
+
+```js
+import SharingIfaceType from '@ohos.net.sharing'
+sharing.startSharing(SharingIfaceType.SHARING_WIFI).then(() => {
+ console.log("start wifi sharing successful");
+}).catch(error => {
+ console.log("start wifi sharing failed");
+});
+```
+
+## sharing.stopSharing
+
+stopSharing(type: SharingIfaceType, callback: AsyncCallback\): void
+
+Stops network sharing of a specified type. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**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.|
+
+**Example**
+
+```js
+import SharingIfaceType from '@ohos.net.sharing'
+sharing.stopSharing(SharingIfaceType.SHARING_WIFI, (error) => {
+ console.log(JSON.stringify(error));
+});
+```
+
+## sharing.stopSharing
+
+stopSharing(type: SharingIfaceType): Promise\
+
+Stops network sharing of a specified type. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**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.|
+
+**Example**
+
+```js
+import SharingIfaceType from '@ohos.net.sharing'
+sharing.stopSharing(SharingIfaceType.SHARING_WIFI).then(() => {
+ console.log("stop wifi sharing successful");
+}).catch(error => {
+ console.log("stop wifi sharing failed");
+});
+```
+
+## sharing.getStatsRxBytes
+
+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.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the data volume, in KB.|
+
+**Example**
+
+```js
+sharing.getStatsRxBytes((error, data) => {
+ console.log(JSON.stringify(error));
+ console.log(JSON.stringify(data));
+});
+```
+
+## sharing.getStatsRxBytes
+
+getStatsRxBytes(): Promise\
+
+Obtains the volume of mobile data traffic received via network sharing. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the data volume, in KB.|
+
+**Example**
+
+```js
+sharing.getStatsRxBytes().then(data => {
+ console.log(JSON.stringify(data));
+}).catch(error => {
+ console.log(JSON.stringify(error));
+});
+```
+
+## sharing.getStatsTxBytes
+
+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.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the data volume, in KB.|
+
+**Example**
+
+```js
+sharing.getStatsTxBytes((error, data) => {
+ console.log(JSON.stringify(error));
+ console.log(JSON.stringify(data));
+});
+```
+
+## sharing.getStatsTxBytes
+
+getStatsTxBytes(): Promise\
+
+Obtains the volume of mobile data traffic sent via network sharing. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the data volume, in KB.|
+
+**Example**
+
+```js
+sharing.getStatsTxBytes().then(data => {
+ console.log(JSON.stringify(data));
+}).catch(error => {
+ console.log(JSON.stringify(error));
+});
+```
+
+## sharing.getStatsTotalBytes
+
+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.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the data volume, in KB.|
+
+**Example**
+
+```js
+sharing.getStatsTotalBytes((error, data) => {
+ console.log(JSON.stringify(error));
+ console.log(JSON.stringify(data));
+});
+```
+
+## sharing.getStatsTotalBytes
+
+getStatsTotalBytes(): Promise\
+
+Obtains the volume of mobile data traffic sent and received via network sharing. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the data volume, in KB.|
+
+**Example**
+
+```js
+sharing.getStatsTotalBytes().then(data => {
+ console.log(JSON.stringify(data));
+}).catch(error => {
+ console.log(JSON.stringify(error));
+});
+```
+
+## sharing.getSharingIfaces
+
+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.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| state | state: [SharingIfaceState](#sharingifacestate) | Yes | Network sharing state.|
+| callback | AsyncCallback\> | Yes | Callback used to return an array of NIC names.|
+
+**Example**
+
+```js
+import SharingIfaceState from '@ohos.net.sharing'
+sharing.getSharingIfaces(SharingIfaceState.SHARING_NIC_CAN_SERVER, (error, data) => {
+ console.log(JSON.stringify(error));
+ console.log(JSON.stringify(data));
+});
+```
+
+## sharing.getSharingIfaces
+
+getSharingIfaces(state: SharingIfaceState): Promise\>
+
+Obtains the names of NICs in the specified network sharing state. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| state | state: [SharingIfaceState](#sharingifacestate) | Yes | Network sharing state.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\> | Promise used to return an array of NIC names.|
+
+**Example**
+
+```js
+import SharingIfaceState from '@ohos.net.sharing'
+sharing.getSharingIfaces(SharingIfaceState.SHARING_NIC_CAN_SERVER).then(data => {
+ console.log(JSON.stringify(data));
+}).catch(error => {
+ console.log(JSON.stringify(error));
+});
+```
+
+## sharing.getSharingState
+
+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.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**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.|
+
+**Example**
+
+```js
+import SharingIfaceState from '@ohos.net.sharing'
+sharing.getSharingState(SharingIfaceType.SHARING_WIFI, (error, data) => {
+ console.log(JSON.stringify(error));
+ console.log(JSON.stringify(data));
+});
+```
+
+## sharing.getSharingState
+
+getSharingState(type: SharingIfaceType): Promise\
+
+Obtains the network sharing state of the specified type. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**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\<[SharingIfaceState](#sharingifacestate)> | Promise used to return the network sharing state.|
+
+**Example**
+
+```js
+import SharingIfaceType from '@ohos.net.sharing'
+sharing.getSharingIfaces(SharingIfaceType.SHARING_WIFI).then(data => {
+ console.log(JSON.stringify(data));
+}).catch(error => {
+ console.log(JSON.stringify(error));
+});
+```
+
+## sharing.getSharableRegexes
+
+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.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**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.|
+
+**Example**
+
+```js
+import SharingIfaceState from '@ohos.net.sharing'
+sharing.getSharingState(SharingIfaceType.SHARING_WIFI, (error, data) => {
+ console.log(JSON.stringify(error));
+ console.log(JSON.stringify(data));
+});
+```
+
+## sharing.getSharableRegexes
+
+getSharableRegexes(type: SharingIfaceType): Promise\>
+
+Obtains regular expressions of NICs of a specified type. This API uses a promise to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**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.|
+
+**Example**
+
+```js
+import SharingIfaceType from '@ohos.net.sharing'
+sharing.getSharableRegexes(SharingIfaceType.SHARING_WIFI).then(data => {
+ console.log(JSON.stringify(data));
+}).catch(error => {
+ console.log(JSON.stringify(error));
+});
+```
+
+## on('sharingStateChange')
+
+on(type: 'sharingStateChange', callback: Callback\): void
+
+Subscribes to network sharing state changes. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| type | string | Yes | Event name.|
+| callback | AsyncCallback\ | Yes | Callback used to return the network sharing state.|
+
+**Example**
+
+```js
+sharing.on('sharingStateChange', (error, data) => {
+ console.log(JSON.stringify(error));
+ console.log(JSON.stringify(data));
+});
+```
+
+## off('sharingStateChange')
+
+off(type: 'sharingStateChange', callback?: Callback\): void
+
+Unsubscribes from network sharing state changes. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| type | string | Yes | Event name.|
+| callback | AsyncCallback\ | No | Callback used for unsubscription.|
+
+**Example**
+
+```js
+sharing.off('sharingStateChange', (error, data) => {
+ console.log(JSON.stringify(error));
+ console.log(JSON.stringify(data));
+});
+```
+
+## on('interfaceSharingStateChange')
+
+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.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**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.|
+
+**Example**
+
+```js
+sharing.on('interfaceSharingStateChange', (error, data) => {
+ console.log(JSON.stringify(error));
+ console.log(JSON.stringify(data));
+});
+```
+
+## off('interfaceSharingStateChange')
+
+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.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| type | string | No | Event name.|
+| callback | AsyncCallback\<{ type: [SharingIfaceType](#sharingifacetype), iface: string, state: SharingIfaceState(#sharingifacestate) }> | No | Callback used for unsubscription.|
+
+**Example**
+
+```js
+sharing.off('interfaceSharingStateChange', (error, data) => {
+ console.log(JSON.stringify(error));
+ console.log(JSON.stringify(data));
+});
+```
+
+## on('sharingUpstreamChange')
+
+on(type: 'sharingUpstreamChange', callback: Callback\): void
+
+Subscribes to upstream network changes. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| type | string | Yes | Event name.|
+| callback | AsyncCallback\ | Yes | Callback invoked when the upstream network changes.|
+
+**Example**
+
+```js
+sharing.on('sharingUpstreamChange', (error, data) => {
+ console.log(JSON.stringify(error));
+ console.log(JSON.stringify(data));
+});
+```
+
+## off('sharingUpstreamChange')
+
+off(type: 'sharingUpstreamChange', callback?: Callback\): void
+
+Unsubscribes from upstream network changes. This API uses an asynchronous callback to return the result.
+
+**Required permissions**: ohos.permission.CONNECTIVITY_INTERNAL
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| type | string | Yes | Event name.|
+| callback | AsyncCallback\ | No | Callback used for unsubscription.|
+
+**Example**
+
+```js
+sharing.off('sharingUpstreamChange', (error, data) => {
+ console.log(JSON.stringify(error));
+ console.log(JSON.stringify(data));
+});
+```
+
+## SharingIfaceState
+
+Enumerates the network sharing states of an NIC.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+| 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.|
+
+## SharingIfaceType
+
+Enumerates the network sharing types of an NIC.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+| Name | Value | Description |
+| ------------------------ | ---- | ---------------------- |
+| SHARING_WIFI | 0 | Wi-Fi hotspot sharing.|
+| SHARING_USB | 1 | USB sharing.|
+| SHARING_BLUETOOTH | 2 | Bluetooth sharing.|
diff --git a/en/application-dev/reference/apis/js-apis-net-statistics.md b/en/application-dev/reference/apis/js-apis-net-statistics.md
new file mode 100644
index 0000000000000000000000000000000000000000..37d470deb661f185c4d87aa0259d67f38324651e
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-net-statistics.md
@@ -0,0 +1,409 @@
+# Network Traffic Management
+
+The Network Traffic Management module collects statistics on the mobile data traffic and allows you to query the data volume by network interface (cellular or Wi-Fi) or application.
+
+> **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 statistics from '@ohos.net.statistics'
+```
+
+## statistics.getIfaceRxBytes
+
+getIfaceRxBytes(nic: string, callback: AsyncCallback\): void
+
+Obtains the volume of mobile data traffic received by a specified NIC. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| nic | string | Yes | NIC name.|
+| callback | AsyncCallback\ | Yes | Callback used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getIfaceRxBytes(this.nic, (err, data) => {
+ this.callBack(err, data);
+ console.log(JSON.stringify(error))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getIfaceRxBytes
+
+getIfaceRxBytes(nic: string): Promise\;
+
+Obtains the volume of mobile data traffic received by a specified NIC. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| nic | string | Yes | NIC name.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getIfaceRxBytes(this.nic).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getIfaceTxBytes
+
+getIfaceTxBytes(nic: string, callback: AsyncCallback\): void
+
+Obtains the volume of mobile data traffic sent by a specified NIC. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| nic | string | Yes | NIC name.|
+| callback | AsyncCallback\ | Yes | Callback used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getIfaceTxBytes(this.nic, (err, data) => {
+ this.callBack(err, data);
+ console.log(JSON.stringify(error))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getIfaceTxBytes
+
+getIfaceTxBytes(nic: string): Promise\;
+
+Obtains the volume of mobile data traffic sent by a specified NIC. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| nic | string | Yes | NIC name.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getIfaceTxBytes(this.nic).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getCellularRxBytes
+
+getCellularRxBytes(callback: AsyncCallback\): void;
+
+Obtains the volume of mobile data traffic received by the cellular network. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getCellularRxBytes((err, data) => {
+ this.callBack(err, data);
+ console.log(JSON.stringify(error))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getCellularRxBytes
+
+getCellularRxBytes(): Promise\;
+
+Obtains the volume of mobile data traffic received by the cellular network. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getCellularRxBytes().then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getCellularTxBytes
+
+getCellularTxBytes(callback: AsyncCallback\): void;
+
+Obtains the volume of mobile data traffic sent by the cellular network. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getCellularTxBytes((err, data) => {
+ this.callBack(err, data);
+ console.log(JSON.stringify(error))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getCellularTxBytes
+
+getCellularTxBytes(): Promise\;
+
+Obtains the volume of mobile data traffic sent by the cellular network. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getCellularTxBytes().then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getAllRxBytes
+
+getAllRxBytes(callback: AsyncCallback\): void;
+
+Obtains the volume of mobile data traffic received by all NICs. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getAllRxBytes(err, data) => {
+ this.callBack(err, data);
+ console.log(JSON.stringify(error))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getAllRxBytes
+
+getAllRxBytes(): Promise\;
+
+Obtains the volume of mobile data traffic received by all NICs. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getAllRxBytes().then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getAllTxBytes
+
+getAllTxBytes(callback: AsyncCallback\): void;
+
+Obtains the volume of mobile data traffic sent by all NICs. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getAllTxBytes((err, data) => {
+ this.callBack(err, data);
+ console.log(JSON.stringify(error))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getAllTxBytes
+
+getAllTxBytes(): Promise\;
+
+Obtains the volume of mobile data traffic sent by all NICs. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getAllTxBytes().then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getUidRxBytes
+
+getUidRxBytes(uid: number, callback: AsyncCallback\): void;
+
+Obtains the volume of mobile data traffic received by a specified application. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes | Application ID.|
+| callback | AsyncCallback\ | Yes | Callback used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getUidRxBytes(this.uid, (err, data) => {
+ this.callBack(err, data);
+ console.log(JSON.stringify(error))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getUidRxBytes
+
+getUidRxBytes(uid: number): Promise\;
+
+Obtains the volume of mobile data traffic received by a specified application. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes | Application ID.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getUidRxBytes(this.uid).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getUidTxBytes
+
+getUidTxBytes(uid: number, callback: AsyncCallback\): void;
+
+Obtains the volume of mobile data traffic sent by a specified application. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes | Application ID.|
+| callback | AsyncCallback\ | Yes | Callback used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getUidTxBytes(this.uid, (err, data) => {
+ this.callBack(err, data);
+ console.log(JSON.stringify(error))
+ console.log(JSON.stringify(data))
+})
+```
+
+## statistics.getUidTxBytes
+
+getUidTxBytes(uid: number): Promise\;
+
+Obtains the volume of mobile data traffic sent by a specified application. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Communication.NetManager.Core
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------- | ---- | ---------- |
+| uid | number | Yes | Application ID.|
+
+**Return value**
+
+| Type | Description |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | Promise used to return the data volume, in bytes.|
+
+**Example**
+
+```js
+statistics.getUidTxBytes(this.uid).then((err, data) {
+ console.log(JSON.stringify(err))
+ console.log(JSON.stringify(data))
+})
+```