# @ohos.net.policy (Network Policy Management) (System API) The **policy** 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 10. Newly added APIs will be marked with a superscript to indicate their earliest API version. > The APIs provided by this module are system APIs. ## Modules to Import ```ts import { policy } from '@kit.NetworkKit'; ``` ## policy.setBackgroundAllowed10+ setBackgroundAllowed(isAllowed: boolean, callback: AsyncCallback\): void Specifies whether background applications are allowed to access the network. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | --------- | -------------------- | ---- | ------------------------------------------------------------ | | isAllowed | boolean | Yes | Whether background applications are allowed to use mobile data. | | callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.setBackgroundAllowed(true, (error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.setBackgroundAllowed10+ setBackgroundAllowed(isAllowed: boolean): Promise\ Specifies whether background applications are allowed to access the network. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | --------- | ------- | ---- | ------------------------ | | isAllowed | boolean | Yes | Whether background applications are allowed to use mobile data.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Return value** | Type | Description | | -------------- | ----------------------------------------------------------------- | | Promise\ | Promise used to return the result. If the operation is successful, no value is returned. If the operation fails, an error message is returned.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.setBackgroundAllowed(true).then(() => { console.log("setBackgroundAllowed success"); }).catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.isBackgroundAllowed10+ isBackgroundAllowed(callback: AsyncCallback\): void Checks whether the current application is allowed to access the network when running at the background. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ----------------------- | ---- | ---------------------------------------------------------------- | | callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, the value **true** is returned, which means that background applications are allowed to use mobile data. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.isBackgroundAllowed((error: BusinessError, data: boolean) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## policy.isBackgroundAllowed10+ isBackgroundAllowed(): Promise\; Checks whether the current application is allowed to access the network when running at the background. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Return value** | Type | Description | | ----------------- | ------------------------------------------------------------------------------------ | | Promise\ | Promise used to return the result. If the operation is successful, the value **true** is returned, which means that background applications are allowed to use mobile data. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .isBackgroundAllowed() .then((data: boolean) => { console.log(JSON.stringify(data)); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.setPolicyByUid10+ setPolicyByUid(uid: number, policy: NetUidPolicy, callback: AsyncCallback\): void Sets the metered network access policy for the application specified by a given UID. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------- | ---- | ---------------------------------------------- | | uid | number | Yes | Unique ID of the application. | | policy | [NetUidPolicy](#netuidpolicy10) | Yes | Network access policy for the application. | | callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, no value is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.setPolicyByUid(11111, policy.NetUidPolicy.NET_POLICY_NONE, (error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.setPolicyByUid10+ setPolicyByUid(uid: number, policy: NetUidPolicy): Promise\; Sets the metered network access policy for the application specified by a given UID. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name| Type | Mandatory| Description | | ------ | ------------------------------- | ---- | -------------- | | uid | number | Yes | Unique ID of the application.| | policy | [NetUidPolicy](#netuidpolicy10) | Yes | Network access policy for the application.| **Return value** | Type | Description | | -------------- | ----------------------------------------------------------------- | | Promise\ | Promise used to return the result. If the operation is successful, no value is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .setPolicyByUid(11111, policy.NetUidPolicy.NET_POLICY_NONE) .then(() => { console.log('setPolicyByUid success'); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.getPolicyByUid10+ getPolicyByUid(uid: number, callback: AsyncCallback\): void Obtains the network access policy for the application specified by a given UID. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ----------------------------------------------- | ---- | -------------------------------------------------------- | | uid | number | Yes | Unique ID of the application. | | callback | AsyncCallback\<[NetUidPolicy](#netuidpolicy10)> | Yes | Callback used to return the result. If the operation is successful, the operation result is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.getPolicyByUid(11111, (error: BusinessError, data: policy.NetUidPolicy) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## policy.getPolicyByUid10+ getPolicyByUid(uid: number): Promise\; Obtains the network access policy for the application specified by a given UID. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **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](#netuidpolicy10)> | Promise used to return the result. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .getPolicyByUid(11111) .then((data: policy.NetUidPolicy) => { console.log(JSON.stringify(data)); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.getUidsByPolicy10+ getUidsByPolicy(policy: NetUidPolicy, callback: AsyncCallback\>): void Obtains all UIDs that match the specified network policy. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------- | ---- | ----------------------------------------------------------- | | policy | [NetUidPolicy](#netuidpolicy10) | Yes | Network policy for the application. | | callback | AsyncCallback\> | Yes | Callback used to return the result. If the operation is successful, the operation result is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.getUidsByPolicy(11111, (error: BusinessError, data: number[]) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## policy.getUidsByPolicy10+ getUidsByPolicy(policy: NetUidPolicy): Promise\>; Obtains all UIDs that match the specified network policy. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name| Type | Mandatory| Description | | ------ | ------------------------------- | ---- | -------------------------- | | policy | [NetUidPolicy](#netuidpolicy10) | Yes | Network policy for the application.| **Return value** | Type | Description | | ------------------------ | ------------------------------------------------------------ | | Promise\> | Promise used to return the result. If the operation is successful, the operation result is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .getUidsByPolicy(11111) .then((data: object) => { console.log(JSON.stringify(data)); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.getNetQuotaPolicies10+ getNetQuotaPolicies(callback: AsyncCallback\>): void Obtains the network quota policies. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ----------------------------------------------------------- | ---- | ------------------------ | | 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. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.getNetQuotaPolicies((error: BusinessError, data: policy.NetQuotaPolicy[]) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## policy.getNetQuotaPolicies10+ getNetQuotaPolicies(): Promise\>; Obtains the network quota policies. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **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. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .getNetQuotaPolicies() .then((data: policy.NetQuotaPolicy[]) => { console.log(JSON.stringify(data)); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.setNetQuotaPolicies10+ setNetQuotaPolicies(quotaPolicies: Array\, callback: AsyncCallback\): void Sets network quota policies. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | ------------- | ------------------------------------------- | ---- | ---------------------------------------------- | | quotaPolicies | Array\<[NetQuotaPolicy](#netquotapolicy10)> | Yes | Network quota policies. | | callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, no value is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { connection } from '@kit.NetworkKit'; import { BusinessError } from '@kit.BasicServicesKit'; let netQuotaPolicyList: Array = []; let netquotapolicy: policy.NetQuotaPolicy = { networkMatchRule: { netType: connection.NetBearType.BEARER_CELLULAR, identity: '', simId: '1' }, quotaPolicy: { periodDuration: 'M1', warningBytes: 40000, limitBytes: 50000, metered: true, limitAction: policy.LimitAction.LIMIT_ACTION_NONE } } netQuotaPolicyList.push(netquotapolicy); policy.setNetQuotaPolicies(netQuotaPolicyList, (error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.setNetQuotaPolicies10+ setNetQuotaPolicies(quotaPolicies: Array\): Promise\; Sets network quota policies. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | ------------- | ------------------------------------------- | ---- | ------------ | | quotaPolicies | Array\<[NetQuotaPolicy](#netquotapolicy10)> | Yes | Network quota policies.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Return value** | Type | Description | | -------------- | ----------------------------------------------------------------- | | Promise\ | Promise used to return the result. If the operation is successful, no value is returned. If the operation fails, an error message is returned.| **Example** ```ts import { connection } from '@kit.NetworkKit'; import { BusinessError } from '@kit.BasicServicesKit'; let netQuotaPolicyList: Array = []; let netquotapolicy: policy.NetQuotaPolicy = { networkMatchRule: { netType: connection.NetBearType.BEARER_CELLULAR, identity: '', simId: '1' }, quotaPolicy: { periodDuration: 'M1', warningBytes: 40000, limitBytes: 50000, metered: true, limitAction: policy.LimitAction.LIMIT_ACTION_NONE } } netQuotaPolicyList.push(netquotapolicy); policy .setNetQuotaPolicies(netQuotaPolicyList) .then(() => { console.log('setNetQuotaPolicies success'); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.isUidNetAllowed10+ isUidNetAllowed(uid: number, isMetered: boolean, callback: AsyncCallback\): void Checks whether the application specified by a given UID is allowed to access a metered network. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **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 the value **false** means the opposite.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.isUidNetAllowed(11111, true, (error: BusinessError, data: boolean) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## policy.isUidNetAllowed10+ isUidNetAllowed(uid: number, isMetered: boolean): Promise\; Checks whether the application specified by a given UID is allowed to access a metered network. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **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.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .isUidNetAllowed(11111, true) .then((data: boolean) => { console.log(JSON.stringify(data)); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.isUidNetAllowed10+ isUidNetAllowed(uid: number, iface: string, callback: AsyncCallback\): void Checks whether an application is allowed to access the specified network. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **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 specified network, and the value **false** means the opposite.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.isUidNetAllowed(11111, 'wlan0', (error: BusinessError, data: boolean) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## policy.isUidNetAllowed10+ isUidNetAllowed(uid: number, iface: string): Promise\; Checks whether an application is allowed to access the specified network. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **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. | **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .isUidNetAllowed(11111, 'wlan0') .then((data: boolean) => { console.log(JSON.stringify(data)); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.setDeviceIdleTrustlist10+ setDeviceIdleTrustlist(uids: Array\, isAllowed: boolean, callback: AsyncCallback\): void Adds applications specified by given UIDs to the device idle allowlist. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | --------- | ------------------------------ | ---- | ---------------------------------------------- | | uids | Array\ | 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. If the operation is successful, no value is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.setDeviceIdleTrustlist([11111, 22222], true, (error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.setDeviceIdleTrustlist10+ setDeviceIdleTrustlist(uids: Array\, isAllowed: boolean): Promise\; Adds applications specified by given UIDs to the device idle allowlist. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | --------- | -------------- | ---- | -------------- | | uids | Array\ | 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. If the operation is successful, no value is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .setDeviceIdleTrustlist([11111, 22222], true) .then(() => { console.log('setDeviceIdleTrustlist success'); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.getDeviceIdleTrustlist10+ getDeviceIdleTrustlist(callback: AsyncCallback\>): void Obtains the UIDs of applications that are on the device idle allowlist. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------ | ---- | ------------------------ | | 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. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.getDeviceIdleTrustlist((error: BusinessError, data: number[]) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## policy.getDeviceIdleTrustlist10+ getDeviceIdleTrustlist(): Promise\>; Obtains the UIDs of applications that are on the device idle allowlist. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **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. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .getDeviceIdleTrustlist() .then((data: number[]) => { console.log(JSON.stringify(data)); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.getBackgroundPolicyByUid10+ getBackgroundPolicyByUid(uid: number, callback: AsyncCallback\): void Obtains the background network policy for the application specified by a given UID. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------- | ---- | ------------------------ | | uid | number | Yes | Unique ID of the application. | | callback | AsyncCallback\<[NetBackgroundPolicy](#netbackgroundpolicy10)> | 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. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.getBackgroundPolicyByUid(11111, (error: BusinessError, data: policy.NetBackgroundPolicy) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## policy.getBackgroundPolicyByUid10+ getBackgroundPolicyByUid(uid: number): Promise\; Obtains the background network policies configured for the specified application. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **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](#netbackgroundpolicy10)> | Promise used to return the result.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .getBackgroundPolicyByUid(11111) .then((data: policy.NetBackgroundPolicy) => { console.log(JSON.stringify(data)); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.resetPolicies10+ resetPolicies(simId: string, callback: AsyncCallback\): void Restores all the policies (cellular network, background network, firewall, and application-specific network policies) for the specified SIM card. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | -------------------- | ---- | ---------------------------------------------- | | simId | string | Yes | SIM card ID. | | callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, no value is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.resetPolicies('1', (error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.resetPolicies10+ resetPolicies(simId: string): Promise\; Restores all the policies (cellular network, background network, firewall, and application-specific network policies) for the specified SIM card. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name| Type | Mandatory| Description | | ------ | ------ | ---- | --------- | | simId | string | Yes | SIM card ID.| **Return value** | Type | Description | | -------------- | ----------------------------------------------------------------- | | Promise\ | Promise used to return the result. If the operation is successful, no value is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .resetPolicies('1') .then(() => { console.log('resetPolicies success'); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.updateRemindPolicy10+ updateRemindPolicy(netType: NetBearType, simId: string, remindType: RemindType, callback: AsyncCallback\): void Updates a reminder policy. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | ---------- | ---------------------------------------------------- | ---- | ---------------------------------------------- | | netType | [NetBearType](js-apis-net-connection.md#netbeartype) | Yes | Network type. | | simId | string | Yes | SIM card ID. | | remindType | [RemindType](#remindtype10) | Yes | Reminder type. | | callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, no value is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { connection } from '@kit.NetworkKit'; import { BusinessError } from '@kit.BasicServicesKit'; policy.updateRemindPolicy( connection.NetBearType.BEARER_CELLULAR, '1', policy.RemindType.REMIND_TYPE_WARNING, (error: BusinessError) => { console.log(JSON.stringify(error)); } ); ``` ## policy.updateRemindPolicy10+ updateRemindPolicy(netType: NetBearType, simId: string, remindType: RemindType): Promise\; Updates a reminder policy. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | ---------- | ---------------------------------------------------- | ---- | --------- | | netType | [NetBearType](js-apis-net-connection.md#netbeartype) | Yes | Network type. | | simId | string | Yes | SIM card ID.| | remindType | [RemindType](#remindtype10) | Yes | Reminder type. | **Return value** | Type | Description | | -------------- | ----------------------------------------------------------------- | | Promise\ | Promise used to return the result. If the operation is successful, no value is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { connection } from '@kit.NetworkKit'; import { BusinessError } from '@kit.BasicServicesKit'; policy .updateRemindPolicy( connection.NetBearType.BEARER_CELLULAR, '1', policy.RemindType.REMIND_TYPE_WARNING ) .then(() => { console.log('updateRemindPolicy success'); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.setPowerSaveTrustlist10+ setPowerSaveTrustlist(uids: Array\, isAllowed: boolean, callback: AsyncCallback\): void Sets whether to add the application specified by a given UID to the power-saving allowlist. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | --------- | ------------------------------ | ---- | ---------------------------------------------- | | uids | Array\ | 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. If the operation is successful, no value is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.setPowerSaveTrustlist([11111, 22222], true, (error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.setPowerSaveTrustlist10+ setPowerSaveTrustlist(uids: Array\, isAllowed: boolean): Promise\; Sets whether to add the application specified by a given UID to the power-saving allowlist. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | --------- | -------------- | ---- | -------------- | | uids | Array\ | 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. If the operation is successful, no value is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .setPowerSaveTrustlist([11111, 22222], true) .then(() => { console.log('setPowerSaveTrustlist success'); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.getPowerSaveTrustlist10+ getPowerSaveTrustlist(callback: AsyncCallback\>): void Obtains the UID array of applications that are on the power-saving allowlist. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------ | ---- | ------------------------ | | 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. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy.getPowerSaveTrustlist((error: BusinessError, data: number[]) => { console.log(JSON.stringify(error)); console.log(JSON.stringify(data)); }); ``` ## policy.getPowerSaveTrustlist10+ getPowerSaveTrustlist(): Promise\>; Obtains the UID array of applications that are on the device idle allowlist. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **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. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .getPowerSaveTrustlist() .then((data: number[]) => { console.log(JSON.stringify(data)); }) .catch((error: BusinessError) => { console.log(JSON.stringify(error)); }); ``` ## policy.setNetworkAccessPolicy12+ setNetworkAccessPolicy(uid: number, policy: NetworkAccessPolicy, isReconfirmed?: boolean): Promise Specifies whether an application with the specified UID can access the network. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | ------------- | ---------------------------------------------- | ---- | ---------------------------------------------------------------------------- | | uid | number | Yes | Unique ID of the application. | | policy | [NetworkAccessPolicy](#networkaccesspolicy12) | Yes | Network policy. | | isReconfirmed | boolean | No | Whether reconfirmation is required. The value **true** indicates that reconfirmation is not required and no dialog box is displayed. The value **false** indicates that reconfirmation is required and a dialog box is displayed when the application accesses the network. The default value is **false**. | **Return value** | Type | Description | | -------------- | ------------------------------------------------------------ | | Promise\ | Promise used to return the result. If the operation is successful, no value is returned. If the operation fails, an error message is returned.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let accessPolicy: policy.NetworkAccessPolicy = { allowWiFi: false, allowCellular: true, } policy .setNetworkAccessPolicy(11111, accessPolicy) .then(() => { console.log('setNetworkAccessPolicy success'); }) .catch((error: BusinessError) => { console.error(JSON.stringify(error)); }); ``` ## policy.getNetworkAccessPolicy12+ getNetworkAccessPolicy(uid: number): Promise Checks whether an application with the specified UID can access the network. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name| Type | Mandatory| Description | | ------ | ------ | ---- | -------------- | | uid | number | Yes | Unique ID of the application.| **Return value** | Type | Description | | ------------------------------------------------------- | ----------------------------- | | Promise\<[NetworkAccessPolicy](#networkaccesspolicy12)> | Promise used to return the result.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .getNetworkAccessPolicy(11111) .then((data: policy.NetworkAccessPolicy) => { console.log(JSON.stringify(data)); }) .catch((error: BusinessError) => { console.error(JSON.stringify(error)); }); ``` ## policy.getNetworkAccessPolicy12+ getNetworkAccessPolicy(): Promise Checks whether all applications of the current user can access the network. This API uses a promise to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Return value** | Type | Description | | ------------------------------------------------------------- | --------------------------- | | Promise\<[UidNetworkAccessPolicy](#uidnetworkaccesspolicy12)> | Promise used to return the result.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; policy .getNetworkAccessPolicy() .then((data: policy.UidNetworkAccessPolicy) => { let keyMap: Map = new Map(Object.entries(data)); let uid:number = 0; let allowWiFi: string = ""; let allowCellular: string = ""; keyMap.forEach((value:object, key:string) => { let valueMap: Map = new Map(Object.entries(value)); uid = Number.parseInt(key); valueMap.forEach((value:string, key:string)=>{ if (key == "allowWiFi") { allowWiFi = value; } if (key == "allowCellular") { allowCellular = value; } }) }) console.log(JSON.stringify(data)); }) .catch((error: BusinessError) => { console.error(JSON.stringify(error)); }); ``` ## policy.on Represents the handle to a network policy. ### on('netUidPolicyChange')10+ on(type: "netUidPolicyChange", callback: Callback\): void Subscribes to policy changes. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------------- | ---- | -------------------------------------- | | type | string | Yes | Event type. The value **netUidPolicyChange** indicates a policy change event. | | callback | Callback\<[NetUidPolicyInfo](#netuidpolicyinfo11)> | Yes | Callback used to return the result. It is called when the network policy changes.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { policy } from '@kit.NetworkKit'; interface Data { uid: number, policy: policy.NetUidPolicy } try { policy.on('netUidPolicyChange', (data: Data) => { console.log('on netUidPolicyChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('on netUidPolicyChange error: ' + JSON.stringify(err)); } ``` ### off('netUidPolicyChange')10+ off(type: "netUidPolicyChange", callback?: Callback\): void Unsubscribes from policy changes. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------------- | ---- | -------------------------------------- | | type | string | Yes | Event type. The value **netUidPolicyChange** indicates a policy change event. | | callback | Callback\<[NetUidPolicyInfo](#netuidpolicyinfo11)> | No | Callback used to return the result. It is called when the network policy changes.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { policy } from '@kit.NetworkKit'; interface Data { uid: number, policy: policy.NetUidPolicy } try { policy.on('netUidPolicyChange', (data: Data) => { console.log('on netUidPolicyChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('on netUidPolicyChange error: ' + JSON.stringify(err)); } try { policy.off('netUidPolicyChange', (data: Data) => { console.log('off netUidPolicyChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('off netUidPolicyChange error: ' + JSON.stringify(err)); } ``` ### on('netUidRuleChange')10+ on(type: "netUidRuleChange", callback: Callback\): void Subscribes to rule changes. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------- | ---- | -------------------------------------- | | type | string | Yes | Event type. The value **netUidRuleChange** indicates a rule change event. | | callback | Callback\<[NetUidRuleInfo](#netuidruleinfo11)> | Yes | Callback used to return the result. It is called when the rule changes.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { policy } from '@kit.NetworkKit'; interface Data { uid: number, rule: policy.NetUidRule } try { policy.on('netUidRuleChange', (data: Data) => { console.log('on netUidRuleChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('on netUidRuleChange error: ' + JSON.stringify(err)); } ``` ### off('netUidRuleChange')10+ off(type: "netUidRuleChange", callback?: Callback\): void Unsubscribes from rule changes. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------- | ---- | -------------------------------------- | | type | string | Yes | Event type. The value **netUidRuleChange** indicates a rule change event. | | callback | Callback\<[NetUidRuleInfo](#netuidruleinfo11)> | No | Callback used to return the result. It is called when the rule changes.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { policy } from '@kit.NetworkKit'; interface Data { uid: number, rule: policy.NetUidRule } try { policy.on('netUidRuleChange', (data: Data) => { console.log('on netUidRuleChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('on netUidRuleChange error: ' + JSON.stringify(err)); } try { policy.off('netUidRuleChange', (data: Data) => { console.log('off netUidRuleChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('off netUidRuleChange error: ' + JSON.stringify(err)); } ``` ### on('netMeteredIfacesChange')10+ on(type: "netMeteredIfacesChange", callback: Callback\>): void Subscribes to metered **iface** changes. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------- | ---- | ----------------------------------------- | | type | string | Yes | Event type. The value **netMeteredIfacesChange** indicates a metered **iface** change event. | | callback | Callback\> | Yes | Callback used to return the result. It is called when the registered metered **iface** changes.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { policy } from '@kit.NetworkKit'; try { policy.on('netMeteredIfacesChange', (data: string[]) => { console.log('on netMeteredIfacesChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('on netMeteredIfacesChange error: ' + JSON.stringify(err)); } ``` ### off('netMeteredIfacesChange')10+ off(type: "netMeteredIfacesChange", callback?: Callback\>): void Unsubscribes from metered **iface** changes. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------- | ---- | ----------------------------------------- | | type | string | Yes | Event type. The value **netMeteredIfacesChange** indicates a metered **iface** change event. | | callback | Callback\> | No | Callback used to return the result. It is called when the registered metered **iface** changes.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { policy } from '@kit.NetworkKit'; try { policy.on('netMeteredIfacesChange', (data: string[]) => { console.log('on netMeteredIfacesChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('on netMeteredIfacesChange error: ' + JSON.stringify(err)); } try { policy.off('netMeteredIfacesChange', (data: string[]) => { console.log('off netMeteredIfacesChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('off netMeteredIfacesChange error: ' + JSON.stringify(err)); } ``` ### on('netQuotaPolicyChange')10+ on(type: "netQuotaPolicyChange", callback: Callback\>): void Subscribes to network quota policy changes. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------ | ---- | ------------------------------------------ | | type | string | Yes | Event type. The value **netQuotaPolicyChange** indicates a network quota policy change event. | | callback | Callback\> | Yes | Callback used to return the result. It is called when the registered network quota policy changes.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { policy } from '@kit.NetworkKit'; interface Data { uid: number, policy: policy.NetUidPolicy } try { policy.on('netQuotaPolicyChange', (data: policy.NetQuotaPolicy[]) => { console.log('on netQuotaPolicyChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('on netQuotaPolicyChange error: ' + JSON.stringify(err)); } ``` ### off('netQuotaPolicyChange')10+ off(type: "netQuotaPolicyChange", callback?: Callback\>): void Unsubscribes from network quota policy changes. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------ | ---- | ------------------------------------------ | | type | string | Yes | Event type. The value **netQuotaPolicyChange** indicates a network quota policy change event. | | callback | Callback\> | No | Callback used to return the result. It is called when the registered network quota policy changes.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { policy } from '@kit.NetworkKit'; try { policy.on('netQuotaPolicyChange', (data: Array) => { console.log('on netQuotaPolicyChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('on netQuotaPolicyChange error: ' + JSON.stringify(err)); } try { policy.off('netQuotaPolicyChange', (data: Array) => { console.log('off netQuotaPolicyChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('off netQuotaPolicyChange error: ' + JSON.stringify(err)); } ``` ### on('netBackgroundPolicyChange')10+ on(type: "netBackgroundPolicyChange", callback: Callback\): void Subscribes to background network policy changes. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------ | ---- | ------------------------------------------ | | type | string | Yes | Event type. The value **netBackgroundPolicyChange** indicates a background network policy change event. | | callback | Callback\ | Yes | Callback used to return the result. It is called when the registered background network policy changes.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { policy } from '@kit.NetworkKit'; try { policy.on('netBackgroundPolicyChange', (data: boolean) => { console.log('on netBackgroundPolicyChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('on netBackgroundPolicyChange error: ' + JSON.stringify(err)); } ``` ### off('netBackgroundPolicyChange')10+ off(type: "netBackgroundPolicyChange", callback?: Callback\): void Unsubscribes from background network policy changes. This API uses an asynchronous callback to return the result. **System API**: This is a system API. **Required permission**: ohos.permission.MANAGE_NET_STRATEGY **System capability**: SystemCapability.Communication.NetManager.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------ | ---- | ------------------------------------------ | | type | string | Yes | Event type. The value **netBackgroundPolicyChange** indicates a background network policy change event. | | callback | Callback\ | No | Callback used to return the result. It is called when the registered background network policy changes.| **Error codes** | ID| Error Message | | --------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 2100001 | Invalid parameter value. | | 2100002 | Failed to connect to the service. | | 2100003 | System internal error. | **Example** ```ts import { policy } from '@kit.NetworkKit'; try { policy.on('netBackgroundPolicyChange', (data: boolean) => { console.log('on netBackgroundPolicyChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('on netBackgroundPolicyChange error: ' + JSON.stringify(err)); } try { policy.off('netBackgroundPolicyChange', (data: boolean) => { console.log('off netBackgroundPolicyChange data: ' + JSON.stringify(data)); }); } catch(err) { console.error('off netBackgroundPolicyChange error: ' + JSON.stringify(err)); } ``` ## NetBackgroundPolicy10+ Enumerates the background network policies. **System API**: This is a system API. **System capability**: SystemCapability.Communication.NetManager.Core | Name | Value | Description | | ------------------------------- | --- | ------------------------------------------ | | NET_BACKGROUND_POLICY_NONE | 0 | No background network policy is specified. This is the default value. | | NET_BACKGROUND_POLICY_ENABLE | 1 | Background applications are allowed to access a metered network. | | NET_BACKGROUND_POLICY_DISABLE | 2 | Applications running in the background are not allowed to access a metered network. | | NET_BACKGROUND_POLICY_TRUSTLIST | 3 | Only applications on the allowlist are allowed to access metered networks when they are running in the background.| ## NetQuotaPolicy10+ Defines the quota policy for the specified network. **System API**: This is a system API. **System capability**: SystemCapability.Communication.NetManager.Core | Name | Type | Mandatory| Description | | ---------------- | --------------------------------------- | ---- | -------------------------------- | | networkMatchRule | [NetworkMatchRule](#networkmatchrule10) | Yes | Network for which the quota policy is set.| | quotaPolicy | [QuotaPolicy](#quotapolicy10) | Yes | Network quota policy. | ## NetworkMatchRule10+ Defines the network for which the quota policy is set. **System API**: This is a system API. **System capability**: SystemCapability.Communication.NetManager.Core | Name | Type | Mandatory| Description | | -------- | ---------------------------------------------------- | ---- | ---------------------------------------------------------------------------- | | netType | [NetBearType](js-apis-net-connection.md#netbeartype) | Yes | Network type. | | simId | string | Yes | Identifier of the SIM card on the metered cellular network. It is not used for Wi-Fi networks. | | identity | string | Yes | ID of the SIM card on the metered cellular network. It is used for Wi-Fi networks. It is used together with **iccid**.| ## QuotaPolicy10+ Defines the network quota policy. **System API**: This is a system API. **System capability**: SystemCapability.Communication.NetManager.Core | Name | Type | Mandatory| Description | | ----------------- |-------------------------------| ---- |-----------------------------------------------------| | periodDuration | string | Yes | Metering period for the quota limit. **D1**, **M1**, and **Y1** indicate one day, one month, and one year, respectively. If the specified metering period is exceeded, the quota is not limited.| | warningBytes | number | Yes | Data volume threshold for generating an alarm. | | limitBytes | number | Yes | Data volume quota. | | metered | boolean | Yes | Whether the network is a metered network. | | limitAction | [LimitAction](#limitaction10) | Yes | Action to take when the data volume quota is reached. | | lastWarningRemind | number | No | Last time when an alarm was generated. Default value: **-1** | | lastLimitRemind | number | No | Last time when the quota was exhausted. Default value: **-1** | ## LimitAction10+ Enumerates the actions that can be taken when the data volume quota is reached. **System API**: This is a system API. **System capability**: SystemCapability.Communication.NetManager.Core | Name | Value | Description | | ---------------------------- | --- | ---------------------------------- | | LIMIT_ACTION_NONE | -1 | No action is taken. This is the default value. | | LIMIT_ACTION_ACCESS_DISABLED | 0 | Internet access is disabled.| | LIMIT_ACTION_ALERT_ONLY | 1 | An alarm is generated when the quota limit is reached.| ## NetUidRule10+ Enumerates the metered network rules. **System API**: This is a system API. **System capability**: SystemCapability.Communication.NetManager.Core | Name | Value | Description | | --------------------------------- | ------ | -------------------- | | NET_RULE_NONE | 0 | Default rule. | | NET_RULE_ALLOW_METERED_FOREGROUND | 1 << 0 | Applications running in the foreground are allowed to access a metered network.| | NET_RULE_ALLOW_METERED | 1 << 1 | Applications are allowed to access a metered network. | | NET_RULE_REJECT_METERED | 1 << 2 | Applications are not allowed to access a metered network. | | NET_RULE_ALLOW_ALL | 1 << 5 | Applications are allowed to access all networks (metered or non-metered). | | NET_RULE_REJECT_ALL | 1 << 6 | Applications are not allowed to access any networks (metered or non-metered). | ## NetUidRuleInfo11+ Defines a unique network ID. **System API**: This is a system API. **System capability**: SystemCapability.Communication.NetManager.Core | Name | Type | Mandatory| Description | | ----------------- | ----------------------------- | ---- | ----------------------------------------- | | uid | number | Yes | Traffic alarm threshold. The default value is **DATA_USAGE_UNKNOWN**.| | rule | [NetUidRule](#netuidrule10) | Yes | Rule that specifies whether the application specified by a given UID is allowed to access a metered or non-metered network. | ## NetUidPolicyInfo11+ Defines the network policy information for an application. **System API**: This is a system API. **System capability**: SystemCapability.Communication.NetManager.Core | Name | Type | Mandatory| Description | | ----------------- | ------------------------------- | ---- | -------------------------------------- | | uid | number | Yes | Traffic alarm threshold. The default value is **DATA_USAGE_UNKNOWN**.| | policy | [NetUidPolicy](#netuidpolicy10) | Yes | Policy that specifies whether the application specified by a given UID is allowed to access the network when running in the background. | ## RemindType10+ Enumerates the reminder types. **System API**: This is a system API. **System capability**: SystemCapability.Communication.NetManager.Core | Name | Value | Description | | ------------------- | --- | -------- | | REMIND_TYPE_WARNING | 1 | Warning.| | REMIND_TYPE_LIMIT | 2 | Limit.| ## NetUidPolicy10+ Enumerates network access policies for the application. **System API**: This is a system API. **System capability**: SystemCapability.Communication.NetManager.Core | Name | Value | Description | | ------------------------------------ | ------ | -------------------------- | | NET_POLICY_NONE | 0 | Default network policy. | | NET_POLICY_ALLOW_METERED_BACKGROUND | 1 << 0 | Background applications are allowed to access a metered network.| | NET_POLICY_REJECT_METERED_BACKGROUND | 1 << 1 | Applications running in the background are not allowed to access a metered network.| ## NetworkAccessPolicy12+ Network access policy. **System API**: This is a system API. **System capability**: SystemCapability.Communication.NetManager.Core | Name | Type | Mandatory| Description | | ----------------- | --------- | ---- | ----------------------------- | | allowWiFi | boolean | Yes | Wi-Fi access policy.| | allowCellular | boolean | Yes | Cellular network access policy.| ## UidNetworkAccessPolicy12+ Defines the network policy for an application with the specified UID. **System API**: This is a system API. **System capability**: SystemCapability.Communication.NetManager.Core | Name | Type | Mandatory| Description | | --------- | ----------------------------------------------------------- | ---- | ------------------- | | undefined | [uid: string]: [NetworkAccessPolicy](#networkaccesspolicy12) | No | Network policy. The data type is key-value pair. |