首页 鸿蒙 正文
  • 本文约1797字,阅读需9分钟
  • 74
  • 0

鸿蒙获取(网络类型,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数组 就可以渲染出数据
}

 

评论