网络场景识别 (C/C++)
场景介绍
应用在订阅网络场景识别后,系统在网络场景实时信息或预测信息发生变化后回调给应用,回调的网络场景信息包括数据传输的链路类型、网络场景类型、数传策略建议、弱信号信息等。
接口说明
具体API说明详见接口文档。
| 接口名 | 描述 |
|---|---|
| int32_t HMS_NetworkBoost_RegisterNetSceneCallback(HMS_NetworkBoost_NetSceneChange callback, uint32_t* callbackId) | 注册网络场景信息状态变化回调。 |
| int32_t HMS_NetworkBoost_UnregisterNetSceneCallback(uint32_t callbackId) | 取消注册网络场景信息状态变化回调。 |
开发步骤
-
导入Network Boost Kit模块。
#include "NetworkBoostKit/network_boost_quality.h"#include <cstdio> -
CMakeLists.txt中添加以下lib,具体请见C API开发准备。
libnetwork_boost.so -
通过注册回调的方式监听网络场景识别信息。
uint32_t callbackId = 0;void onNetworkSceneChanged(NetworkBoost_NetworkScene *ns){// 网络场景识别回调信息处理printf("数据路径类型: %d\n", ns->pathType);printf("网络场景: %d\n", ns->scene);switch (ns->scene) {case NB_SCENE_NORMAL:// 普通场景处理break;case NB_SCENE_CONGESTION:// 拥塞场景处理break;case NB_SCENE_FREQUENT_HANDOVER:// 信号快切场景处理break;case NB_SCENE_WEAK_SIGNAL:// 弱信号场景处理break;}printf("应用数传策略建议: %d\n", ns->recommendedAction);if (ns->weakSignalPrediction.duration > 0) {// 弱信号预测处理}}int32_t RegisterNetSceneCallback(){HMS_NetworkBoost_NetSceneChange callback;callback = onNetworkSceneChanged;// 注册回调,获取回调Idint32_t ret = HMS_NetworkBoost_RegisterNetSceneCallback(callback, &callbackId);printf("注册网络场景结果: %d, Id:%d\n", ret, callbackId);return ret;} -
当应用业务流程结束,通过取消注册的方式取消监听网络场景识别信息。
int32_t UnregisterNetSceneCallback(){// 使用注册时获取的回调Id取消注册int32_t ret = HMS_NetworkBoost_UnregisterNetSceneCallback(callbackId);printf("取消注册网络场景结果: %d\n", ret);return ret;}