@ohos.net.statistics (Traffic Management) (System API)
The statistics module provides APIs to query real-time or historical data traffic by the specified network interface card (NIC) or user ID (UID).
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. This topic describes only system APIs provided by the module. For details about its public APIs, see @ohos.net.statistics (Traffic Management).
Modules to Import
import statistics from "@ohos.net.statistics";
statistics.on('netStatsChange')10+
on(type: 'netStatsChange', callback: Callback<NetStatsChangeInfo>): void
Subscribes to traffic change events.
System API: This is a system API.
Required permissions: ohos.permission.GET_NETWORK_STATS
System capability: SystemCapability.Communication.NetManager.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. This field has a fixed value of netStatsChange. |
callback | Callback<NetStatsChangeInfo> | Yes | Callback invoked when the traffic changes. |
Error codes
For details about the error codes, see Traffic Management Error Codes.
ID | Error Message |
---|---|
201 | Permission denied. |
202 | Non-system applications use system APIs. |
401 | Parameter error. |
2100002 | Operation failed. Cannot connect to service. |
2100003 | System internal error. |
Example
import statistics from '@ohos.net.statistics';
class IFace {
iface: string = ""
uid?: number = 0
}
statistics.on('netStatsChange', (data: IFace) => {
console.log('on netStatsChange' + JSON.stringify(data));
});
statistics.off('netStatsChange')10+
off(type: 'netStatsChange', callback?: Callback<NetStatsChangeInfo>): void;
Unsubscribes from traffic change events.
System API: This is a system API.
Required permissions: ohos.permission.GET_NETWORK_STATS
System capability: SystemCapability.Communication.NetManager.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. This field has a fixed value of netStatsChange. |
callback | Callback<NetStatsChangeInfo> | No | Callback invoked when the traffic changes. |
Error codes
For details about the error codes, see Traffic Management Error Codes.
ID | Error Message |
---|---|
201 | Permission denied. |
202 | Non-system applications use system APIs. |
401 | Parameter error. |
2100002 | Operation failed. Cannot connect to service. |
2100003 | System internal error. |
Example
import statistics from '@ohos.net.statistics';
class IFace {
iface: string = ""
uid?: number = 0
}
let callback: (data: IFace) => void = (data: IFace) => {
console.log("on netStatsChange, iFace:" + data.iface + " uid: " + data.uid);
}
statistics.on('netStatsChange', callback);
// You can pass the callback of the on method to cancel listening for a certain type of callback. If you do not pass the callback, you will cancel listening for all callbacks.
statistics.off('netStatsChange', callback);
statistics.off('netStatsChange');
statistics.getTrafficStatsByIface10+
getTrafficStatsByIface(ifaceInfo: IfaceInfo, callback: AsyncCallback<NetStatsInfo>): void;
Obtains the historical data traffic of the specified NIC. This API uses an asynchronous callback to return the result.
System API: This is a system API.
Required permissions: ohos.permission.GET_NETWORK_STATS
System capability: SystemCapability.Communication.NetManager.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
ifaceInfo | IfaceInfo | Yes | NIC information. For details, see IfaceInfo. |
callback | AsyncCallback<NetStatsInfo> | Yes | Callback used to return the result. If the operation is successful, error is undefined and statsInfo is the historical data traffic of the NIC. Otherwise, error is an error object. |
Error codes
For details about the error codes, see Traffic Management Error Codes.
ID | Error Message |
---|---|
201 | Permission denied. |
202 | Non-system applications use system APIs. |
401 | Parameter error. |
2100001 | Invalid parameter value. |
2100002 | Operation failed. Cannot connect to service. |
2100003 | System internal error. |
2103017 | Read data from database failed. |
Example
import { BusinessError } from '@ohos.base';
import statistics from '@ohos.net.statistics';
let iFaceInfo: statistics.IfaceInfo | null = null;
if (iFaceInfo) {
statistics.getTrafficStatsByIface(iFaceInfo as statistics.IfaceInfo, (error: BusinessError, statsInfo: statistics.NetStatsInfo) => {
console.log(JSON.stringify(error));
console.log(
"getTrafficStatsByIface bytes of received = " +
JSON.stringify(statsInfo.rxBytes)
);
console.log(
"getTrafficStatsByIface bytes of sent = " +
JSON.stringify(statsInfo.txBytes)
);
console.log(
"getTrafficStatsByIface packets of received = " +
JSON.stringify(statsInfo.rxPackets)
);
console.log(
"getTrafficStatsByIface packets of sent = " +
JSON.stringify(statsInfo.txPackets)
);
});
}
statistics.getTrafficStatsByIface10+
getTrafficStatsByIface(ifaceInfo: IfaceInfo): Promise<NetStatsInfo>;
Obtains the historical data traffic of the specified NIC. This API uses a promise to return the result.
System API: This is a system API.
Required permissions: ohos.permission.GET_NETWORK_STATS
System capability: SystemCapability.Communication.NetManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
ifaceInfo | IfaceInfo | Yes | NIC information. For details, see IfaceInfo. |
Return value
Type | Description |
---|---|
Promise<NetStatsInfo> | Promise used to return the result, which is the historical data traffic of the specified NIC. |
Error codes
For details about the error codes, see Traffic Management Error Codes.
ID | Error Message |
---|---|
201 | Permission denied. |
202 | Non-system applications use system APIs. |
401 | Parameter error. |
2100001 | Invalid parameter value. |
2100002 | Operation failed. Cannot connect to service. |
2100003 | System internal error. |
2103017 | Read data from database failed. |
Example
import statistics from '@ohos.net.statistics';
let iFaceInfo: statistics.IfaceInfo | null = null;
if (iFaceInfo) {
statistics.getTrafficStatsByIface(iFaceInfo as statistics.IfaceInfo).then((statsInfo: statistics.NetStatsInfo) => {
console.log(
"getTrafficStatsByIface bytes of received = " +
JSON.stringify(statsInfo.rxBytes)
);
console.log(
"getTrafficStatsByIface bytes of sent = " +
JSON.stringify(statsInfo.txBytes)
);
console.log(
"getTrafficStatsByIface packets of received = " +
JSON.stringify(statsInfo.rxPackets)
);
console.log(
"getTrafficStatsByIface packets of sent = " +
JSON.stringify(statsInfo.txPackets)
);
});
}
statistics.getTrafficStatsByUid10+
getTrafficStatsByUid(uidInfo: UidInfo, callback: AsyncCallback<NetStatsInfo>): void;
Obtains the historical data traffic of the specified application. This API uses an asynchronous callback to return the result.
System API: This is a system API.
Required permissions: ohos.permission.GET_NETWORK_STATS
System capability: SystemCapability.Communication.NetManager.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
uidInfo | UidInfo | Yes | Application information. For details, see UidInfo. |
callback | AsyncCallback<NetStatsInfo> | Yes | Callback used to return the result. If the operation is successful, error is undefined and statsInfo is the historical data traffic of the application. Otherwise, error is an error object. |
Error codes
For details about the error codes, see Traffic Management Error Codes.
ID | Error Message |
---|---|
201 | Permission denied. |
202 | Non-system applications use system APIs. |
401 | Parameter error. |
2100001 | Invalid parameter value. |
2100002 | Operation failed. Cannot connect to service. |
2100003 | System internal error. |
2103017 | Read data from database failed. |
Example
import { BusinessError } from '@ohos.base';
import statistics from '@ohos.net.statistics';
let uidInfo: statistics.UidInfo = {
uid: 20010037,
ifaceInfo: {
iface: '',
startTime: 1,
endTime: 3,
}
}
statistics.getTrafficStatsByUid(
uidInfo,
(error: BusinessError, statsInfo: statistics.NetStatsInfo) => {
console.log(JSON.stringify(error));
console.log(
"getTrafficStatsByUid bytes of received = " +
JSON.stringify(statsInfo.rxBytes)
);
console.log(
"getTrafficStatsByUid bytes of sent = " +
JSON.stringify(statsInfo.txBytes)
);
console.log(
"getTrafficStatsByUid packets of received = " +
JSON.stringify(statsInfo.rxPackets)
);
console.log(
"getTrafficStatsByUid packets of sent = " +
JSON.stringify(statsInfo.txPackets)
);
}
);
statistics.getTrafficStatsByUid10+
getTrafficStatsByUid(uidInfo: UidInfo): Promise<NetStatsInfo>;
Obtains the historical data traffic of the specified application. This API uses a promise to return the result.
System API: This is a system API.
Required permissions: ohos.permission.GET_NETWORK_STATS
System capability: SystemCapability.Communication.NetManager.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
uidInfo | UidInfo | Yes | Application information. For details, see UidInfo. |
Return value
Type | Description |
---|---|
Promise<NetStatsInfo> | Promise used to return the result, which is the historical data traffic of the specified NIC. |
Error codes
For details about the error codes, see Traffic Management Error Codes.
ID | Error Message |
---|---|
201 | Permission denied. |
202 | Non-system applications use system APIs. |
401 | Parameter error. |
2100001 | Invalid parameter value. |
2100002 | Operation failed. Cannot connect to service. |
2100003 | System internal error. |
2103017 | Read data from database failed. |
Example
import statistics from '@ohos.net.statistics'
let uidInfo: statistics.UidInfo = {
uid: 20010037,
ifaceInfo: {
iface: '',
startTime: 1,
endTime: 3,
}
}
statistics.getTrafficStatsByUid(uidInfo).then((statsInfo: statistics.NetStatsInfo) => {
console.log("getTrafficStatsByUid bytes of received = " + JSON.stringify(statsInfo.rxBytes));
console.log("getTrafficStatsByUid bytes of sent = " + JSON.stringify(statsInfo.txBytes));
console.log("getTrafficStatsByUid packets of received = " + JSON.stringify(statsInfo.rxPackets));
console.log("getTrafficStatsByUid packets of sent = " + JSON.stringify(statsInfo.txPackets));
})
IfaceInfo10+
Defines the parameters for querying historical traffic of an NIC.
System API: This is a system API.
System capability: SystemCapability.Communication.NetManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
iface | string | Yes | NIC name. |
startTime | number | Yes | Start time of the query, which is a timestamp in seconds. |
endTime | number | Yes | End time of the query, which is a timestamp in seconds. |
UidInfo10+
Defines the parameters for querying historical traffic of an application.
System API: This is a system API.
System capability: SystemCapability.Communication.NetManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
ifaceInfo | IfaceInfo<IfaceInfo> | Yes | NIC information, including the NIC name and query time range. |
uid | number | Yes | Application UID. |
NetStatsInfo10+
Defines the historical traffic information.
System API: This is a system API.
System capability: SystemCapability.Communication.NetManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
rxBytes | number | Yes | Downlink traffic, in bytes. |
txBytes | number | Yes | Uplink traffic, in bytes. |
rxPackets | number | Yes | Number of downlink packets. |
txPackets | number | Yes | Number of uplink packets. |
NetStatsChangeInfo11+
Defines the NIC status and usage of an application.
System API: This is a system API.
System capability: SystemCapability.Communication.NetManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
iface | string | Yes | NIC name. |
uid | number | No | Application UID. |