场景介绍

在弱网环境下,系统发起多网迁移(WiFi<->蜂窝,主卡<->副卡等)的过程中,给应用提供连接迁移开始和完成通知,应用根据连接迁移通知的建议进行网络连接重建,快速恢复业务,给用户带来平滑、高速、低时延的上网体验。

接口说明

接口名 描述
int32_t HMS_NetworkBoost_RegisterHandoverChangeCallback(HMS_NetworkBoost_HandoverCallback* callback, uint32_t* callbackId) 注册连接迁移回调。
int32_t HMS_NetworkBoost_UnregisterHandoverChangeCallback(uint32_t callbackId) 取消注册连接迁移回调。

开发步骤

  1. 导入Network Boost Kit模块。
#include "NetworkBoostKit/network_boost_handover.h"
#include <cstdio>
  1. CMakeLists.txt中添加以下lib

    libnetwork_boost.so
    
  2. 通过注册回调的方式获取连接迁移信息。

uint32_t callbackId = 0;
void onNetworkHandoverStart(NetworkBoost_HandoverStart* handoverStart)
{
    // 连接迁移开始回调,应用按照HandoverStart的建议调整数传策略
}


void onNetworkHandoverComplete(NetworkBoost_HandoverComplete* handoverComplete)
{
    // 连接迁移完成回调,应用按照HandoverComplete的建议进行调速和重建恢复
}


int32_t RegisterNetworkHandoverCallback()
{ 
    HMS_NetworkBoost_HandoverCallback callback;
    callback.onNetworkHandoverStart = onNetworkHandoverStart;
    callback.onNetworkHandoverComplete = onNetworkHandoverComplete;
    // 注册回调,获取回调Id
    int32_t ret = HMS_NetworkBoost_RegisterHandoverChangeCallback(&callback, &callbackId);
    printf("注册连接迁移结果: %d, Id:%d\n", ret, callbackId);
    return ret;
}
  1. 当应用业务流程结束,通过取消注册的方式取消监听连接迁移信息。
int32_t UnregisterNetworkHandoverCallback() {
    // 使用注册时获取的回调Id取消注册
    int32_t ret = HMS_NetworkBoost_UnregisterHandoverChangeCallback(callbackId);
    printf("取消注册连接迁移结果: %d\n", ret);
    return ret;
}
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐