HarmonyOS 网络信号强度获取以及网络变化检测相关API

  1. 网络变化检测(网络切换为WIFI、移动等网络发生变化时监听)

  2. 网络信号强度获取

    2.1. 当前连接网络

    2.2. WIFI时读取WIFI信号强度

    2.3. 移动网络时读取移动网络信号强度

    2.4. 多张移动卡时能够区分当前走的是那张卡的数据(也即精准获取当前网络通信移动网络的信号强度)

HarmonyOS
2024-12-27 17:00:46
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

问题一,监听网络切换时可以使用connect包的连接监听事件,使用时要注意监听事件绑定的对象的生命周期,对象销毁后监听事件不会回调

参考文档 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-net-connection-V5#netconnection

问题二,可以参考如下demo

import connection from '@ohos.net.connection';
import data from '@ohos.telephony.data';
import radio from '@ohos.telephony.radio';
import wifiManager from '@ohos.wifiManager';

export async function obtNetInfo(){
  let curNet = await connection.getDefaultNet();
  let netAbility = await connection.getNetCapabilities(curNet);
  let netType = netAbility.bearerTypes;

  if(connection.NetBearType.BEARER_CELLULAR == netType[0]){
    // 移动网络
    // 获取当前移动数据使用的卡槽
    let cardId = await data.getDefaultCellularDataSlotId();

    // 获取网络信号强度信息
    let signalInfo = await radio.getSignalInformation(cardId);
    let info = signalInfo[0];

    // 强度类型 GSM/CDMA/WCDMA/TDSCDMA/LTE/NR
    let signalType = info.signalType;

    // 强度等级
    let signalLevel = info.signalLevel;

    // 强度
    let dbm = info.dBm;

  }else if(connection.NetBearType.BEARER_WIFI == netType[0]){
    // wifi
    let wifiInfo = await wifiManager.getLinkedInfo();

    // wifi信号强度
    let dbm = wifiInfo.rssi
    // 上行速度
    let upSpeed = wifiInfo.linkSpeed;

    //下行速度
    let downSpeed = wifiInfo.rxLinkSpeed
  }else {
    // 以太网
  }
}
分享
微博
QQ
微信
回复
2024-12-27 19:34:42
相关问题
HarmonyOS 如何获取信号强度等信息
840浏览 • 1回复 待解决
如何判断蜂窝信号强度
2403浏览 • 1回复 待解决
如何判断手机信号强度
1160浏览 • 1回复 待解决
HarmonyOS 如何检测没有网络
329浏览 • 1回复 待解决
HarmonyOS 如何检测网络状态
421浏览 • 1回复 待解决
HarmonyOS 如何检测网络是否畅通
262浏览 • 1回复 待解决
HarmonyOS 网络变化监听失效
432浏览 • 1回复 待解决
HarmonyOS 如何检测是否有网络链接
167浏览 • 1回复 待解决
HarmonyOS 网络相关问题咨询
322浏览 • 1回复 待解决
HarmonyOS关于混淆强度相关问题
945浏览 • 1回复 待解决
网络请求抓包以及日志
1230浏览 • 1回复 待解决
HarmonyOS 网络监听api怎么用
311浏览 • 1回复 待解决
HarmonyOS 如何获取网络类型
782浏览 • 1回复 待解决