如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。

1、概述
HarmonyOS提供了一套网络网络质量管理的套件(Network Boost Kit),它可以实现网络加速、网络感知、网络质量预测等能力,通过软、硬、芯、端、管、云等全方位的协同解决方案实现网络资源的调优和加速,构筑更可靠、更流畅、更高速的上网体验。
在使用相关API时,需要申请设备网络信息权限:ohos.permission.GET_NETWORK_INFO。需要在entry/src/main路径下的module.json5中配置所需申请的权限。示例代码如下所示:
{"module": {"requestPermissions": [{"name": "ohos.permission.GET_NETWORK_INFO"}]}}
2、网络质量状况评估
我们可以通过订阅网络质量Qos评估来实现监听网络质量问题,系统按照一定的周期或Qos变化后回调给应用。回调的Qos信息包括数据传输的链路类型、上下行空口实时带宽、上下行空口实时速率、RTT时延等。接口定义如下:
// 订阅Qos信息状态变化on(type: 'netQosChange', callback: Callback<Array<NetworkQos>>): void// 取消订阅Qos信息状态变化off(type: 'netQosChange', callback?: Callback<Array<NetworkQos>>): void
其中NetWorkQos对象是系统返回的网络质量信息。相关结构定义如下:
class NetworkQos {pathType: PathType // 相应的数据路径上的网络质量信息。linkUpBandwidth: RateBps // 上行带宽信息。linkDownBandwidth: RateBps // 下行带宽信息。linkUpRate: RateBps // 上行速率。linkDownRate: RateBps // 下行速率。rttMs: number // RTT时延,取值范围是任意正数。linkUpBufferDelayMs: number //上行发送空口缓冲时延,取值范围是任意正数。linkUpBufferCongestionPercent: number // 上行发送空口缓冲时延占总缓冲时间的比例,取值范围[0, 100]。}enum PathType {CELLULAR_PRIMARY = 0 // 蜂窝主卡。CELLULAR_SECONDARY = 1 // 蜂窝副卡。WIFI_PRIMARY = 2 // 主WiFi。WIFI_SECONDARY = 3 // 辅WiFi。}type RateBps = number // 带宽或速率的抽象表示。
示例代码如下:
// 导入NetWork Boost Kit模块import { netQuality } from '@kit.NetworkBoostKit';import { BusinessError } from '@kit.BasicServicesKit';// 订阅获取系统Qos信息// .....try {netQuality.on('netQosChange', (list: Array<netQuality.NetworkQos>) => {if (list.length > 0) {list.forEach((qos) => {// 回调信息处理});}});} catch (err) {console.error('errCode: ' + (err as BusinessErr

最低0.47元/天 解锁文章
1018

被折叠的 条评论
为什么被折叠?



