文档管理中心

@ohos.net.statistics (流量管理)

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

流量管理模块提供获取设备网络流量数据的能力。该模块支持从多个维度查询数据包的流量使用情况,例如:

  • 支持获取指定网卡的上/下行流量数据;
  • 支持获取所有网卡的总流量数据,便于查看设备整体网络使用情况;
  • 支持根据应用uid获取指定应用的流量数据,帮助开发者监控应用的网络资源消耗;
  • 支持获取指定socket的流量统计,为细粒度的网络性能分析提供数据基础;
  • 支持获取应用在指定时间段内的历史流量使用情况,便于分析应用的长期网络使用趋势。
说明

本模块首批接口从 API version 10 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

收起
自动换行
深色代码主题
复制
  1. import { statistics } from '@kit.NetworkKit';

statistics.getIfaceRxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getIfaceRxBytes(nic: string, callback: AsyncCallback<number>): void

获取指定网卡从最近一次开机开始至接口调用时刻的下行流量总和(单位:字节)。使用callback异步回调。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

展开
参数名 类型 必填 说明
nic string 指定查询的网卡名。
callback AsyncCallback<number> 回调函数。当成功获取到流量数据时,error为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍参见流量管理错误码通用错误码

展开
错误码ID 错误信息
401 Parameter error.
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.
2103012 Failed to obtain the NIC name.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { statistics } from '@kit.NetworkKit';
  3. statistics.getIfaceRxBytes("wlan0", (error: BusinessError, stats: number) => {
  4. if (error) {
  5. console.error(`getIfaceRxBytes error, ${JSON.stringify(error)}`);
  6. return;
  7. }
  8. console.info(`getIfaceRxBytes success, ${JSON.stringify(stats)}`);
  9. });

statistics.getIfaceRxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getIfaceRxBytes(nic: string): Promise<number>

获取指定网卡从最近一次开机开始至接口调用时刻的下行流量总和(单位:字节)。使用Promise异步回调。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

展开
参数名 类型 必填 说明
nic string 指定查询的网卡名。

返回值:

展开
类型 说明
Promise<number> Promise对象。返回指定网卡从最近一次开机开始到现在的下行流量总和(单位:字节)。

错误码:

以下错误码的详细介绍参见流量管理错误码通用错误码

展开
错误码ID 错误信息
401 Parameter error.
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.
2103012 Failed to obtain the NIC name.

示例:

收起
自动换行
深色代码主题
复制
  1. import { statistics } from '@kit.NetworkKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. statistics.getIfaceRxBytes("wlan0").then((stats: number) => {
  4. console.info(JSON.stringify(stats));
  5. }).catch((err: BusinessError) => {
  6. console.error(JSON.stringify(err));
  7. });

statistics.getIfaceTxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getIfaceTxBytes(nic: string, callback: AsyncCallback<number>): void

获取指定网卡从最近一次开机开始至接口调用时刻的上行流量总和(单位:字节)。使用callback异步回调。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

展开
参数名 类型 必填 说明
nic string 指定查询的网卡名。
callback AsyncCallback<number> 回调函数。当成功获取到流量数据时,error为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍参见流量管理错误码通用错误码

展开
错误码ID 错误信息
401 Parameter error.
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.
2103012 Failed to obtain the NIC name.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { statistics } from '@kit.NetworkKit';
  3. statistics.getIfaceTxBytes("wlan0", (error: BusinessError, stats: number) => {
  4. if (error) {
  5. console.error(`getIfaceTxBytes error, ${JSON.stringify(error)}`);
  6. return;
  7. }
  8. console.info(`getIfaceTxBytes success, ${JSON.stringify(stats)}`);
  9. });

statistics.getIfaceTxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getIfaceTxBytes(nic: string): Promise<number>

获取指定网卡从最近一次开机开始至接口调用时刻的上行流量总和(单位:字节)。使用Promise异步回调。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

展开
参数名 类型 必填 说明
nic string 指定查询的网卡名。

返回值:

展开
类型 说明
Promise<number> Promise对象。返回指定网卡从最近一次开机开始至接口调用时刻的上行流量总和(单位:字节)。

错误码:

以下错误码的详细介绍参见流量管理错误码通用错误码

展开
错误码ID 错误信息
401 Parameter error.
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.
2103012 Failed to obtain the NIC name.

示例:

收起
自动换行
深色代码主题
复制
  1. import { statistics } from '@kit.NetworkKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. statistics.getIfaceTxBytes("wlan0").then((stats: number) => {
  4. console.info(`getIfaceTxBytes success, ${JSON.stringify(stats)}`);
  5. }).catch((err: BusinessError) => {
  6. console.error(`getIfaceTxBytes error, ${JSON.stringify(err)}`);
  7. });

statistics.getCellularRxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getCellularRxBytes(callback: AsyncCallback<number>): void

获取当前已处于连接状态的蜂窝网络对应的网卡从最近一次开机开始至接口调用时刻的下行流量总和(单位:字节)。使用callback异步回调。

说明

本接口建议在蜂窝网络处于连接状态时调用,否则会抛出2103012错误码。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

展开
参数名 类型 必填 说明
callback AsyncCallback<number> 回调函数。当成功获取到流量数据时,error为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍参见流量管理错误码

展开
错误码ID 错误信息
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.
2103012 Failed to obtain the NIC name.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { statistics } from '@kit.NetworkKit';
  3. statistics.getCellularRxBytes((error: BusinessError, stats: number) => {
  4. if (error) {
  5. console.error(`getCellularRxBytes error, ${JSON.stringify(error)}`);
  6. return;
  7. }
  8. console.info(`getCellularRxBytes success, ${JSON.stringify(stats)}`);
  9. });

statistics.getCellularRxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getCellularRxBytes(): Promise<number>

获取当前已处于连接状态的蜂窝网络对应的网卡从最近一次开机开始至接口调用时刻的下行流量总和(单位:字节)。使用Promise异步回调。

说明

本接口建议在蜂窝网络处于连接状态时调用,否则会抛出2103012错误码。

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

展开
类型 说明
Promise<number> Promise对象。返回指定网卡从最近一次开机开始至接口调用时刻的下行流量总和(单位:字节)。

错误码:

以下错误码的详细介绍参见流量管理错误码

展开
错误码ID 错误信息
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.
2103012 Failed to obtain the NIC name.

示例:

收起
自动换行
深色代码主题
复制
  1. import { statistics } from '@kit.NetworkKit';
  2. statistics.getCellularRxBytes().then((stats: number) => {
  3. console.info('getCellularRxBytes success', JSON.stringify(stats));
  4. }).catch((error: Error) => {
  5. console.error('getCellularRxBytes error', JSON.stringify(error));
  6. });

statistics.getCellularTxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getCellularTxBytes(callback: AsyncCallback<number>): void

获取当前已处于连接状态的蜂窝网络对应的网卡从最近一次开机开始至接口调用时刻的上行流量总和(单位:字节)。使用callback异步回调。

说明

本接口建议在蜂窝网络处于连接状态时调用,否则会抛出2103012错误码。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

展开
参数名 类型 必填 说明
callback AsyncCallback<number> 回调函数。当成功获取到流量数据时,error为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍参见流量管理错误码

展开
错误码ID 错误信息
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.
2103012 Failed to obtain the NIC name.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { statistics } from '@kit.NetworkKit';
  3. statistics.getCellularTxBytes((error: BusinessError, stats: number) => {
  4. if (error) {
  5. console.error(`getCellularTxBytes error, ${JSON.stringify(error)}`);
  6. return;
  7. }
  8. console.info(`getCellularTxBytes success, ${JSON.stringify(stats)}`);
  9. });

statistics.getCellularTxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getCellularTxBytes(): Promise<number>

获取当前已处于连接状态的蜂窝网络对应的网卡从最近一次开机开始至接口调用时刻的上行流量总和(单位:字节)。使用Promise异步回调。

说明

本接口建议在蜂窝网络处于连接状态时调用,否则会抛出2103012错误码。

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

展开
类型 说明
Promise<number> Promise对象。返回从最近一次开机开始到现在,蜂窝上所消耗的上行流量总和(单位:字节)。

错误码:

以下错误码的详细介绍参见流量管理错误码

展开
错误码ID 错误信息
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.
2103012 Failed to obtain the NIC name.

示例:

收起
自动换行
深色代码主题
复制
  1. import { statistics } from '@kit.NetworkKit';
  2. statistics.getCellularTxBytes().then((stats: number) => {
  3. console.info('getCellularTxBytes success', JSON.stringify(stats));
  4. }).catch((error: Error) => {
  5. console.error('getCellularTxBytes error', JSON.stringify(error));
  6. });

statistics.getAllRxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getAllRxBytes(callback: AsyncCallback<number>): void

获取所有网卡从最近一次开机开始至接口调用时刻的下行流量总和(单位:字节)。使用callback异步回调。

元服务API: 从API version 15开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

展开
参数名 类型 必填 说明
callback AsyncCallback<number> 回调函数。当成功获取到流量数据时,error为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍参见流量管理错误码

展开
错误码ID 错误信息
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.

示例:

收起
自动换行
深色代码主题
复制
  1. import { statistics } from '@kit.NetworkKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. statistics.getAllRxBytes((error: BusinessError, stats: number) => {
  4. if (error) {
  5. console.error(JSON.stringify(error));
  6. return;
  7. }
  8. console.info(JSON.stringify(stats));
  9. });

statistics.getAllRxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getAllRxBytes(): Promise<number>

获取所有网卡从最近一次开机开始至接口调用时刻的下行流量总和(单位:字节)。使用Promise异步回调。

元服务API: 从API version 15开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

展开
类型 说明
Promise<number> Promise对象。返回所有网卡从最近一次开机开始到现在的下行流量总和(单位:字节)。

错误码:

以下错误码的详细介绍参见流量管理错误码

展开
错误码ID 错误信息
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.

示例:

收起
自动换行
深色代码主题
复制
  1. import { statistics } from '@kit.NetworkKit';
  2. statistics.getAllRxBytes().then((stats: number) => {
  3. console.info('getAllRxBytes success', JSON.stringify(stats));
  4. }).catch((error: Error) => {
  5. console.error('getAllRxBytes error', JSON.stringify(error));
  6. });

statistics.getAllTxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getAllTxBytes(callback: AsyncCallback<number>): void

获取所有网卡从最近一次开机开始至接口调用时刻的上行流量总和(单位:字节)。使用callback异步回调。

元服务API: 从API version 15开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

展开
参数名 类型 必填 说明
callback AsyncCallback<number> 回调函数。当成功获取到流量数据时,error为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍参见流量管理错误码

展开
错误码ID 错误信息
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { statistics } from '@kit.NetworkKit';
  3. statistics.getAllTxBytes((error: BusinessError, stats: number) => {
  4. if (error) {
  5. console.error(JSON.stringify(error));
  6. return;
  7. }
  8. console.info(JSON.stringify(stats));
  9. });

statistics.getAllTxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getAllTxBytes(): Promise<number>

获取所有网卡从最近一次开机开始至接口调用时刻的上行流量总和(单位:字节)。使用Promise异步回调。

元服务API: 从API version 15开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

展开
类型 说明
Promise<number> 以Promise 形式返回获取结果。返回所有网卡实时上行流量(单位:字节)。

错误码:

以下错误码的详细介绍参见流量管理错误码

展开
错误码ID 错误信息
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.

示例:

收起
自动换行
深色代码主题
复制
  1. import { statistics } from '@kit.NetworkKit';
  2. statistics.getAllTxBytes().then((stats: number) => {
  3. console.info(JSON.stringify(stats));
  4. });

statistics.getUidRxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getUidRxBytes(uid: number, callback: AsyncCallback<number>): void

获取指定应用从最近一次开机开始至接口调用时刻的下行流量总和(单位:字节)。使用callback异步回调。

说明

若重启后该应用未产生流量消耗,则会抛出2103005错误码。

需要权限:

  • API版本26.0.0之前:N/A
  • API版本26.0.0+:ohos.permission.GET_NETWORK_STATS(仅当参数uid数值与接口调用方uid不同时需要申请,即查询非自身应用流量数据时需要申请)

系统能力:SystemCapability.Communication.NetManager.Core

参数:

展开
参数名 类型 必填 说明
uid number 指定查询的应用 uid。
callback AsyncCallback<number> 回调函数。当成功获取到流量数据时,error为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍参见流量管理错误码通用错误码

展开
错误码ID 错误信息
201

Permission denied.

适用版本:26.0.0+

401 Parameter error.
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { statistics } from '@kit.NetworkKit';
  3. let uid = 123456789; // uid示例,请传入正确的uid
  4. statistics.getUidRxBytes(uid, (error: BusinessError, stats: number) => {
  5. if (error) {
  6. console.error(JSON.stringify(error));
  7. return;
  8. }
  9. console.info(JSON.stringify(stats));
  10. });

statistics.getUidRxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getUidRxBytes(uid: number): Promise<number>

获取指定应用从最近一次开机开始至接口调用时刻的下行流量总和(单位:字节)。使用Promise异步回调。

说明

若重启后该应用未产生流量消耗,则会抛出2103005错误码。

系统能力:SystemCapability.Communication.NetManager.Core

需要权限:

  • API版本26.0.0之前:N/A
  • API版本26.0.0+:ohos.permission.GET_NETWORK_STATS(仅当参数uid数值与接口调用方uid不同时需要申请,即查询非自身应用流量数据时需要申请)

参数:

展开
参数名 类型 必填 说明
uid number 指定查询的应用 uid。

返回值:

展开
类型 说明
Promise<number> Promise对象。返回指定应用从最近一次开机开始到现在的下行流量总和(单位:字节)。

错误码:

以下错误码的详细介绍参见流量管理错误码通用错误码

展开
错误码ID 错误信息
201

Permission denied.

适用版本:26.0.0+

401 Parameter error.
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.

示例:

收起
自动换行
深色代码主题
复制
  1. import { statistics } from '@kit.NetworkKit';
  2. let uid = 123456789; // uid示例,请传入正确的uid
  3. statistics.getUidRxBytes(uid).then((stats: number) => {
  4. console.info(JSON.stringify(stats));
  5. });

statistics.getUidTxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getUidTxBytes(uid: number, callback: AsyncCallback<number>): void

获取指定应用从最近一次开机开始至接口调用时刻的上行流量总和(单位:字节)。使用callback异步回调。

说明

若重启后该应用未产生流量消耗,则会抛出2103005错误码。

系统能力:SystemCapability.Communication.NetManager.Core

需要权限:

  • API版本26.0.0之前:N/A
  • API版本26.0.0+:ohos.permission.GET_NETWORK_STATS(仅当参数uid数值与接口调用方uid不同时需要申请,即查询非自身应用流量数据时需要申请)

参数:

展开
参数名 类型 必填 说明
uid number 指定查询的应用 uid。
callback AsyncCallback<number> 回调函数。当成功获取应用实时上行流量时,error为undefined,stats为获取到的应用上行流量(单位:字节);否则为错误对象。

错误码:

以下错误码的详细介绍参见流量管理错误码通用错误码

展开
错误码ID 错误信息
201

Permission denied.

适用版本:26.0.0+

401 Parameter error.
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { statistics } from '@kit.NetworkKit';
  3. let uid = 123456789; // uid示例,请传入正确的uid
  4. statistics.getUidTxBytes(uid, (error: BusinessError, stats: number) => {
  5. if (error) {
  6. console.error(JSON.stringify(error));
  7. return;
  8. }
  9. console.info(JSON.stringify(stats));
  10. });

statistics.getUidTxBytes

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getUidTxBytes(uid: number): Promise<number>

获取指定应用从最近一次开机开始至接口调用时刻的上行流量总和(单位:字节)。使用Promise异步回调。

说明

若重启后该应用未产生流量消耗,则会抛出2103005错误码。

系统能力:SystemCapability.Communication.NetManager.Core

需要权限:

  • API版本26.0.0之前:N/A
  • API版本26.0.0+:ohos.permission.GET_NETWORK_STATS(仅当参数uid数值与接口调用方uid不同时需要申请,即查询非自身应用流量数据时需要申请)

参数:

展开
参数名 类型 必填 说明
uid number 指定查询的应用 uid。

返回值:

展开
类型 说明
Promise<number> Promise对象。返回指定应用从最近一次开机开始至接口调用时刻的上行流量总和(单位:字节)。

错误码:

以下错误码的详细介绍参见流量管理错误码通用错误码

展开
错误码ID 错误信息
201

Permission denied.

适用版本:26.0.0+

401 Parameter error.
2100002 Failed to connect to the service.
2100003 System internal error.
2103005 Failed to read the system map.
2103011 Failed to create a system map.

示例:

收起
自动换行
深色代码主题
复制
  1. import { statistics } from '@kit.NetworkKit';
  2. let uid = 123456789; // uid示例,请传入正确的uid
  3. statistics.getUidTxBytes(uid).then((stats: number) => {
  4. console.info(JSON.stringify(stats));
  5. });

statistics.getSockfdRxBytes11+

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getSockfdRxBytes(sockfd: number, callback: AsyncCallback<number>): void

获取指定Socket的下行流量(单位:字节)。使用callback异步回调。

说明

推荐在Socket连接时使用,否则Socket已经关闭后无法查询到对应流量数据。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

展开
参数名 类型 必填 说明
sockfd number 指定查询的Socket的FD(file description)。
callback AsyncCallback<number> 回调函数。当成功获取Socket的下行流量时,error为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍参见流量管理错误码通用错误码

展开
错误码ID 错误信息
401 Parameter error.
2100001 Invalid parameter value.
2100002 Failed to connect to the service.
2100003 System internal error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { statistics } from '@kit.NetworkKit';
  3. let sockfd = 50; // 实际开发中需要先根据自己创建的Socket获取到。
  4. statistics.getSockfdRxBytes(sockfd, (error: BusinessError, stats: number) => {
  5. if (error) {
  6. console.error(JSON.stringify(error));
  7. return;
  8. }
  9. console.info(JSON.stringify(stats));
  10. });

statistics.getSockfdRxBytes11+

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getSockfdRxBytes(sockfd: number): Promise<number>

获取指定Socket的下行流量(单位:字节)。使用Promise异步回调。

说明

推荐在Socket连接时使用,否则Socket已经关闭后无法查询到对应流量数据。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

展开
参数名 类型 必填 说明
sockfd number 指定查询的Socket的FD(file description)。

返回值:

展开
类型 说明
Promise<number> Promise对象。返回该Socket的下行流量(单位:字节)。

错误码:

以下错误码的详细介绍参见流量管理错误码通用错误码

展开
错误码ID 错误信息
401 Parameter error.
2100001 Invalid parameter value.
2100002 Failed to connect to the service.
2100003 System internal error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { statistics } from '@kit.NetworkKit';
  3. let sockfd = 50; // 实际开发中需要先根据自己创建的Socket获取到。
  4. statistics.getSockfdRxBytes(sockfd).then((stats: number) => {
  5. console.info(JSON.stringify(stats));
  6. }).catch((err: BusinessError) => {
  7. console.error(JSON.stringify(err));
  8. });

statistics.getSockfdTxBytes11+

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getSockfdTxBytes(sockfd: number, callback: AsyncCallback<number>): void

获取指定Socket的上行流量(单位:字节)。使用callback异步回调。

说明

推荐在Socket连接时使用,否则Socket已经关闭后无法查询到对应流量数据。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

展开
参数名 类型 必填 说明
sockfd number 指定查询的Socket的FD(file description)。
callback AsyncCallback<number> 回调函数。当成功获取Socket的上行流量时,error为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍参见流量管理错误码通用错误码

展开
错误码ID 错误信息
401 Parameter error.
2100001 Invalid parameter value.
2100002 Failed to connect to the service.
2100003 System internal error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { statistics } from '@kit.NetworkKit';
  3. let sockfd = 50; // 实际开发中需要先根据自己创建的Socket获取到。
  4. statistics.getSockfdTxBytes(sockfd, (error: BusinessError, stats: number) => {
  5. if (error) {
  6. console.error(JSON.stringify(error));
  7. return;
  8. }
  9. console.info(JSON.stringify(stats));
  10. });

statistics.getSockfdTxBytes11+

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

getSockfdTxBytes(sockfd: number): Promise<number>

获取指定Socket的上行流量(单位:字节)。使用Promise异步回调。

说明

推荐在Socket连接时使用,否则Socket已经关闭后无法查询到对应流量数据。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

展开
参数名 类型 必填 说明
sockfd number 指定查询的Socket的FD(file description)。

返回值:

展开
类型 说明
Promise<number> Promise对象。返回该Socket的上行流量(单位:字节)。

错误码:

以下错误码的详细介绍参见流量管理错误码通用错误码

展开
错误码ID 错误信息
401 Parameter error.
2100001 Invalid parameter value.
2100002 Failed to connect to the service.
2100003 System internal error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { statistics } from '@kit.NetworkKit';
  3. let sockfd = 50; // 实际开发中需要先根据自己创建的Socket获取到。
  4. statistics.getSockfdTxBytes(sockfd).then((stats: number) => {
  5. console.info(JSON.stringify(stats));
  6. }).catch((err: BusinessError) => {
  7. console.error(JSON.stringify(err));
  8. });

statistics.getSelfTrafficStats22+

Phone22+PC/2in122+Tablet22+TV22+Wearable22+

getSelfTrafficStats(networkInfo: NetworkInfo): Promise<NetStatsInfo>

获取指定时间段内,本应用在指定网络中的流量使用情况。使用Promise异步回调。

说明
  • 当前只支持获取蜂窝和Wi-Fi流量使用情况。

  • 当前只支持获取31天之内的流量使用情况,如果参数中传入的时间戳早于当前系统时间31天,会返回错误码2103019。
  • 本接口会有一定耗时,调用时请注意切勿频繁调用。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

展开
参数名 类型 必填 说明
networkInfo NetworkInfo 指定查询的网络信息。

返回值:

展开
类型 说明
Promise<NetStatsInfo> Promise对象,返回应用历史流量统计信息。

错误码:

以下错误码的详细介绍参见流量管理错误码

展开
错误码ID 错误信息
2100001 Invalid parameter value.
2100002 Failed to connect to the service.
2100003 System internal error.
2103017 Failed to read the database.
2103019 The timestamp in param is invalid.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { connection, statistics } from '@kit.NetworkKit';
  3. let networkInfo: statistics.NetworkInfo = {
  4. type: connection.NetBearType.BEARER_CELLULAR,
  5. startTime: Math.floor(Date.now() / 1000) - 86400 * 31,
  6. endTime: Math.floor(Date.now() / 1000),
  7. simId: 1,
  8. }
  9. statistics.getSelfTrafficStats(networkInfo).then((stats: statistics.NetStatsInfo) => {
  10. console.info('getSelfTrafficStats success : ' + JSON.stringify(stats));
  11. }).catch((err: BusinessError) => {
  12. console.error('getSelfTrafficStats error. code: ' + `${err.code}` + ', message: ' + `${err.message}`);
  13. });

NetBearType12+

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

type NetBearType = connection.NetBearType

网络类型。

系统能力:SystemCapability.Communication.NetManager.Core

展开
类型 说明
connection.NetBearType 枚举网络类型。

NetworkInfo22+

网络信息。

系统能力:SystemCapability.Communication.NetManager.Core

展开
名称 类型 只读 可选 说明
type NetBearType

网络类型。

注意: 当type为蜂窝网络时,需指定simId字段。

startTime number 开始时间戳(单位:秒)。
endTime number 结束时间戳(单位:秒)。
simId number

SIM卡ID。默认值为uint32_t类型最大值。

注意: 当type为蜂窝网络时,需指定本字段。

NetStatsInfo22+

获取的历史流量信息。

系统能力:SystemCapability.Communication.NetManager.Core

展开
名称 类型 只读 可选 说明
rxBytes number 流量下行数据(单位:字节)。
txBytes number 流量上行数据(单位:字节)。
rxPackets number 流量下行包个数。
txPackets number 流量上行包个数。
在 开发与测试 开放能力API 中进行搜索
请输入您想要搜索的关键词