【HarmonyOS NEXT】监听网络状态变化,以及网络类型映射的API接口各是什么

【关键字】

@ohos.net.connection (网络连接管理)模块 / on('netCapabilitiesChange') / 网络类型映射 / getNetCapabilities / @ohos.telephony.radio (网络搜索)模块

【问题描述】

需要构造一个网络状态管理模块,查阅和测试了多个鸿蒙相关的接口,遇到一些问题,请提供下获取以下信息的比较有效的API接口各是什么?

  1. 监听/取消监听网络状态变化的接口(比如 wifi ->5G,5G->4G)

  2. 网络状态的映射方式,期望将当前网络状态映射成(未知/无连接/WIfi/5G/4G/3G/2G/Gprs)这样的枚举

【解决方案】

  1. 监听/取消监听网络状态变化的接口

    @ohos.net.connection网络连接管理模块中的on(“netCapabilitiesChange”)接口可以订阅网络能力变化事件,即可监听网络状态变化,获取网络类型,监听变化可以使用如下接口:

    • 设备从无网络到有网络会触发netAvailable事件、netCapabilitiesChange事件和netConnectionPropertiesChange事件。

    • 设备从有网络到无网络状态会触发netLost事件。

    • 设备从WiFi到蜂窝会触发netLost事件,(WiFi丢失)之后触发 netAvaliable事件(蜂窝可用)。

  2. 网络状态的映射方法接口

    @ohos.net.connection网络连接管理模块中的getNetCapabilities方法可获取网络类型,getNetCapabilities方法返回的bearerType参数为当前连接的网络类型,只连接WiFi或者移动网络时返回为当前网络,若WiFi与蜂窝数据同时连接时会优先返回WiFi信息,需要获取移动网络类型时,可先通过connection.getNetCapabilities方法的bearerTypes获取网络类型,判断为蜂窝网络时,再使用radio.getSignalInformation获取网络信号强度,通过其返回的signalType参数对应出NetworkType网络类型:GSM(2G)CDMA(电信2G)WCDMA(3G)TDSCDMA(3G)LTE(4G)NR(5G)。

@ohos.net.connection模块接口文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-net-connection-0000001774281662

@ohos.telephony.radio (网络搜索)接口文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-radio-0000001774122098#ZH-CN_TOPIC_0000001774122098__radiogetsignalinformation7

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值