鸿蒙网络管理模块07——网络质量管理

如果你也对鸿蒙开发感兴趣,加入“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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值