# @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. |