鸿蒙next开发:网络加速服务-网络质量 (C/C++)(网络质量评估 (C/C++))
·
往期鸿蒙全套实战文章必看:(附带鸿蒙全栈学习资料)
网络质量评估 (C/C++)
场景介绍
应用在订阅网络质量Qos评估后,系统按照一定的周期或Qos变化后回调给应用。回调的Qos信息包括数据传输的链路类型、上下行空口实时带宽、上下行空口实时速率、RTT时延等。
接口说明
具体API说明详见接口文档。
|
接口名 |
描述 |
|---|---|
|
int32_t HMS_NetworkBoost_RegisterNetQosCallback(HMS_NetworkBoost_NetQosChange callback, uint32_t* callbackId) |
注册Qos信息状态变化回调。 |
|
int32_t HMS_NetworkBoost_UnregisterNetQosCallback(uint32_t callbackId) |
取消注册Qos信息状态变化回调。 |
开发步骤
- 导入Network Boost Kit模块。
#include "NetworkBoostKit/network_boost_quality.h" #include <cstdio> - CMakeLists.txt中添加以下lib。
libnetwork_boost.so - 通过注册回调的方式监听网络质量评估信息。
uint32_t callbackId = 0; void onNetworkQoSChanged(NetworkBoost_NetworkQosArray *msg) { for (int32_t i = 0; i < msg->pathNum; i++) { // 回调信息处理 printf("数据链路类型: %d\n", msg->networkQos[i].pathType); printf("该数据链路类型的上行带宽: %ld\n", msg->networkQos[i].linkUpBandwidth); printf("该数据链路类型的下行带宽: %ld\n", msg->networkQos[i].linkDownBandwidth); // 单位为bps,若需转化为B/s,数值需要除以8 printf("该数据链路类型的上行速率: %ld\n", msg->networkQos[i].linkUpRate); // 单位为bps,若需转化为B/s,数值需要除以8 printf("该数据链路类型的下行速率: %ld\n", msg->networkQos[i].linkDownRate); // 实时速率为上行速率和下行速率之和 printf("该数据链路类型的实时速率(B/s): %ld\n", (msg->networkQos[i].linkUpRate + msg->networkQos[i].linkDownRate) / 8); printf("该数据链路类型的RTT时延: %d\n", msg->networkQos[i].rttMs); printf("该数据链路类型的上行发送空口缓冲时延: %d\n", msg->networkQos[i].linkUpBufferDelayMs); } } int32_t RegisterNetQualityCallback() { HMS_NetworkBoost_NetQosChange callback; callback = onNetworkQoSChanged; // 注册回调,获取回调Id int32_t ret = HMS_NetworkBoost_RegisterNetQosCallback(callback, &callbackId); printf("注册网络质量结果: %d, Id:%d\n", ret, callbackId); return ret; } - 当应用业务流程结束,通过取消注册的方式取消监听网络质量评估信息。
int32_t UnregisterNetQualityCallback() { // 使用注册时获取的回调Id取消注册 int32_t ret = HMS_NetworkBoost_UnregisterNetQosCallback(callbackId); printf("取消注册网络质量结果: %d\n", ret); return ret; }
更多推荐



所有评论(0)