HarmonyOS 鸿蒙Next: 如何判断当前连接的网络类型

HarmonyOS 鸿蒙Next: 如何判断当前连接的网络类型 获取当前手机连接的网络类型,结果为WIFI、2G、3G、4G、5G、无这6个结果的其中一个,该如何实现?

2 回复

获取设备的网络类型可以使用 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.telephony.radio (网络搜索)-ArkTS API-Telephony Kit(蜂窝通信服务)-网络-系统 - 华为HarmonyOS开发者 (huawei.com)](https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-radio-V5)

更多关于HarmonyOS 鸿蒙Next: 如何判断当前连接的网络类型的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙Next)中,判断当前连接的网络类型可以通过使用@ohos.net.connection模块中的getDefaultNetgetNetCapabilities方法来实现。首先,使用getDefaultNet方法获取默认的网络连接信息,然后通过getNetCapabilities方法获取该网络的能力信息,包括网络类型。

以下是一个示例代码片段:

import connection from '@ohos.net.connection';

// 获取默认网络连接
let netHandle = connection.getDefaultNet();

// 获取网络能力信息
let netCapabilities = connection.getNetCapabilities(netHandle);

// 判断网络类型
if (netCapabilities.hasCapability(connection.NetCap.NET_CAPABILITY_CELLULAR)) {
    console.log("当前连接的是蜂窝网络");
} else if (netCapabilities.hasCapability(connection.NetCap.NET_CAPABILITY_WIFI)) {
    console.log("当前连接的是Wi-Fi网络");
} else if (netCapabilities.hasCapability(connection.NetCap.NET_CAPABILITY_ETHERNET)) {
    console.log("当前连接的是以太网");
} else {
    console.log("网络类型未知");
}

通过上述代码,可以判断当前连接的网络类型是蜂窝网络、Wi-Fi还是以太网。NetCap枚举类中定义了各种网络类型的能力标识符,可以通过hasCapability方法来判断当前网络是否具备某种能力。

回到顶部