流量管理
介绍
本示例依照指南 开发->系统->网络->Network Kit(网络服务)->管理网络->统计网络流量消耗进行编写,在此调用了示例中的所有非系统接口部分。
流量管理提供了基于物理网络的数据流量统计能力,支持基于网卡/UID 的流量统计。
流量管理主要实现功能有:
- 支持基于网卡/UID 的实时流量统计。
- 支持基于网卡/UID 的历史流量统计。
- 支持基于网卡/UID 的流量变化订阅。
注意:
1、获取蜂窝流量接口(getCellularRxBytes、getCellularTxBytes)需要设备插入SIM卡,且蜂窝连接状态下使用。
2、指定应用相关接口(getUidRxBytes、getUidTxBytes)需要指定已有流量消耗的应用。
3、指定Socket相关接口(getSockfdRxBytes、getSockfdTxBytes)需要传入一个有效socket,代码中的实例仅供参考。
效果预览
| 获取指定网卡下行流量 | 获取指定网卡上行流量 | 获取所有网卡下行流量 | 获取所有网卡上行流量 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
使用说明
-
点击按钮调用指定接口。
-
接口调用结果在程序上方显示。
工程目录
entry/src/main/ets/
|---common
| |---Logger.ts // 日志工具
|---entryability
| │---EntryAbility.ets
|---entrybackupability
│ |---EntryBackupAbility.ets
|---filemanager
| |---GetRealtimeStats.ets // 实时流量统计接口
|---pages
│ |---Index.ets // 主页
具体实现
-
获取指定网卡从最近一次开机至接口调用期间的下行流量总数据 使用
statistics.getIfaceRxBytes(IFACE)获取指定网络接口(如wlan0)的实时下行流量数据。 -
获取指定网卡从最近一次开机至接口调用期间的上行流量总数据 使用
statistics.getIfaceTxBytes(IFACE)获取指定网络接口的实时上行流量数据。 -
获取蜂窝网络实时下行流量数据 使用
statistics.getCellularRxBytes()在蜂窝网络连接状态下,获取蜂窝网络的实时下行流量数据。 -
获取蜂窝网络实时上行流量数据 使用
statistics.getCellularTxBytes()在蜂窝网络连接状态下,获取蜂窝网络的实时上行流量数据。 -
获取所有网卡从最近一次开机至接口调用期间的下行流量总数据 使用
statistics.getAllRxBytes()获取所有网卡的实时下行流量数据。 -
获取所有网卡从最近一次开机至接口调用期间的上行流量总数据 使用
statistics.getAllTxBytes()获取所有网卡的实时上行流量数据。 -
获取指定应用从最近一次开机至接口调用期间的下行流量总数据 使用
statistics.getUidRxBytes(UID)获取指定应用(通过UID获取)的实时下行流量数据。 -
获取指定应用从最近一次开机至接口调用期间的上行流量总数据 使用
statistics.getUidTxBytes(UID)获取指定应用的实时上行流量数据。 -
获取指定 Socket 从创建至接口调用期间的下行流量总数据 使用
statistics.getSockfdRxBytes(sockfd)获取指定 socket 文件描述符的实时下行流量数据。 -
获取指定 Socket 从创建至接口调用期间的上行流量总数据 使用
statistics.getSockfdTxBytes(sockfd)获取指定 socket 文件描述符的实时上行流量数据。
相关权限
ohos.permission.GET_NETWORK_INFO
依赖
不涉及。
约束与限制
- 本示例仅支持标准系统上运行,支持设备:Phone、PC/2in1、Tablet、TV、Wearable。
- 本示例为Stage模型,支持API14版本SDK,版本号:5.0.2.58。
- 本示例需要使用DevEco Studio Release(5.0.5.306)及以上版本才可编译运行。
- 本示例需要设备联网使用。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/DocsSample/NetWork_Kit/NetWorkKit_NetManager/FlowManagement_case/ > .git/info/sparse-checkout
git remote add origin https://gitcode.com/HarmonyOS_Samples/guide-snippets.git
git pull origin master



