鸿蒙获取(网络类型,IP地址,屏幕分辨率,屏幕传感器)硬件信息API
温馨提示:本文最后更新于2024年10月2日 10:50,若内容或图片失效,请在下方留言或联系博主。
获取网络类型:
第一步一定要配置接口所需要的网络权限!!!!
"requestPermissions": [ // 允许应用获取数据网络信息
{
"name": "ohos.permission.GET_NETWORK_INFO"
}
],
检测是否有默认连接的网络
// 导入
import { connection } from '@kit.NetworkKit';
getConnection() {
// 检测是否有默认连接的网络
const hasDefaultNet = connection.hasDefaultNetSync()
if (!hasDefaultNet) {
this.netBearType = '无网络'
} else {
this.netBearType = '有网络'
}
}
有网络的情况下 获取网络的类型
getConnectionNetBearType() {
// 1. 获取默认网络
const defaultNet = connection.getDefaultNetSync()
// 2. 获取网络能力信息
const netCapabilities = connection.getNetCapabilitiesSync(defaultNet)
// 3. 判断网络类型
switch (netCapabilities.bearerTypes.toString()) {
case '0':
this.netBearType = '蜂窝网络'
break
case '3':
this.netBearType = '以太网网络'
break
case '1':
this.netBearType = 'WIFI网络'
break
case '4':
this.netBearType = 'VPN网络'
}
}
获取IP地址:
// 获取链路信息
getConnectionProperties() {
// 1. 获取默认网络
const netHandle = connection.getDefaultNetSync()
// 2. 获取网络连接信息
const connectionProperties = connection.getConnectionPropertiesSync(netHandle)
// 3. 提取链路信息
const linkAddress = connectionProperties.linkAddresses?.[0]
if (linkAddress) {
// 提取 IP 地址
this.IPAddress = linkAddress.address.address
}
}
获取屏幕分辨率:
import { display } from '@kit.ArkUI'
// 屏幕分辨率(像素)
@State displayHeight: number = 0
@State displayWidth: number = 0
// 屏幕刷新率(Hz)
@State displayRefreshRate: number = 0
// 像素密度(PPI)
@State displayDensityDPI: number = 0
// 获取屏幕分辨率
getDisplayInfo() {
// 获取默认屏幕
const defaultDisplay = display.getDefaultDisplaySync()
this.displayWidth = defaultDisplay.width // 屏幕分辨率(像素)
this.displayHeight = defaultDisplay.height
this.displayRefreshRate = defaultDisplay.refreshRate // 屏幕刷新率(HZ)
this.displayDensityDPI = defaultDisplay.densityDPI // 像素密度(PPI)
}
获取屏幕传感器:
import { sensor } from '@kit.SensorServiceKit'
// 支持的传感器id列表
@State supportSensorIds: number[] = [] // 保存 id 的数组
// 获取传感器信息
async getSensorList() {
// 获取设备上的所有传感器信息
const sensorList = await sensor.getSensorList()
// 通过 map 提取出传感器的 id 集合
this.supportSensorIds = sensorList.map(item => item.sensorId)
// 通过 获取到的 id数组 就可以渲染出数据
}