网络质量评估
场景介绍
应用在订阅网络质量Qos(Quality of Service)评估后,系统按照一定的周期或Qos变化后回调给应用。回调的Qos信息包括数据传输的链路类型、上下行空口实时带宽、上下行空口实时速率、RTT时延等。
接口说明
具体API说明详见接口文档。
| 接口名 | 描述 |
|---|---|
| on(type: 'netQosChange', callback: Callback<Array<NetworkQos>>): void | 订阅Qos信息状态变化。 |
| off(type: 'netQosChange', callback?: Callback<Array<NetworkQos>>): void | 取消订阅Qos信息状态变化。 |
开发步骤
-
导入Network Boost Kit模块。
import { netQuality } from '@kit.NetworkBoostKit';import { BusinessError } from '@kit.BasicServicesKit'; -
通过订阅的方式监听网络质量评估信息。
try {netQuality.on('netQosChange', (list: Array<netQuality.NetworkQos>) => {if (list.length > 0) {list.forEach((qos) => {// 回调信息处理console.info(`数据链路类型: ${JSON.stringify(qos.pathType )}.` );console.info(`该数据链路类型的上行带宽: ${JSON.stringify(qos.linkUpBandwidth)}.` );console.info(`该数据链路类型的下行带宽: ${JSON.stringify(qos.linkDownBandwidth)}.` );// 单位为bps,若需转化为B/s,数值需要除以8console.info(`该数据链路类型的上行速率: ${JSON.stringify(qos.linkUpRate)}.` );// 单位为bps,若需转化为B/s,数值需要除以8console.info(`该数据链路类型的下行速率: ${JSON.stringify(qos.linkDownRate)}.` );// 实时速率为上行速率和下行速率之和console.info(`该数据链路类型的实时速率(B/s): ${JSON.stringify((qos.linkUpRate+ qos.linkDownRate) / 8)}.`);console.info(`该数据链路类型的RTT时延: ${JSON.stringify(qos.rttMs)}.` );console.info(`该数据链路类型的上行发送空口缓冲时延: ${JSON.stringify(qos.linkUpBufferDelayMs )}.`);});}});} catch (err) {console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);} -
当应用业务流程结束,去订阅的方式取消监听网络质量评估信息。
try {netQuality.off('netQosChange');} catch (err) {console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);}