鸿蒙获取设备信息的一些方法分两篇(其一)

612 阅读2分钟

分享一下鸿蒙获取设备信息的方法(上篇)

获取设备名称

import { deviceInfo } from '@kit.BasicServicesKit'

// 获取设备名称
async getDeviceName() {
  // 模拟器为 emulator
  this.deviceName = deviceInfo.marketName
}

获取CPU占用率

import { hidebug } from '@kit.PerformanceAnalysisKit'

// 获取进程 CPU 占用率
getCpuUsage() {
  this.cpuUsage = hidebug.getCpuUsage() * 100
}

获取剩余内存储

关于千字节百科解释:baike.baidu.com/item/KB/331

*手机、MacOS、Linux、硬盘、U盘、存储卡、DVD 的文件大小均是以十进制前缀记录的,即 1KB = 1000B*
*只有 Windows 系统的文件大小以 1KB = 1024B 记录。*
import { statfs } from '@kit.CoreFileKit'

// 获取剩余存储
async getStatfsSize() {
  // 获取上下文
  const context = getContext()
  // 字节数转GB, 1000B = 1KB,1000KB = 1MB,1000MB = 1GB
  this.statfsFreeSize = statfs.getFreeSizeSync(context.filesDir) / (1000 * 1000 * 1000)
  // 系统设置 -> 存储 验证剩余容量
}

获取系统电池电量

import { batteryInfo } from '@kit.BasicServicesKit'

// 获取电量信息
async getBatteryState() {
  this.batteryState = batteryInfo.batterySOC
}

获取设备信息

[@ohos.deviceInfo (设备信息)](@ohos.deviceInfo (设备信息)-设备管理-ArkTS API-Basic Services Kit(基础服务)-基础功能-系统 - 华为HarmonyOS开发者 (huawei.com))

import { deviceInfo } from '@kit.BasicServicesKit';

// 获取设备信息
getDeviceInfo() {
  this.marketName = deviceInfo.marketName
  this.osFullName = deviceInfo.osFullName
  this.sdkApiVersion = deviceInfo.sdkApiVersion.toString()
  this.deviceType = deviceInfo.deviceType
}

获取系统运行时间

import { process } from '@kit.ArkTS'

// 获取系统运行时间,单位秒
getProcessUptime() {
  this.uptime = process.uptime()
}

使用三方dayjs处理日期时间

安装 dayjs

ohpm install dayjs

dayjs 官方文档:day.js.org/docs/zh-CN/… 基于获取的系统运行秒数,计算出上次启动时间和运行时间

import dayjs from 'dayjs';
import duration from 'dayjs/plugin/duration';


// 计算上次启动时间,YYYY-MM-DD HH:mm:ss
formatToDateTime(seconds: number) {
  const now = dayjs(); // 获取当前时间
  const dayjsInstance = now.subtract(seconds, 'seconds') // 减去秒数得到新日期对象
  return dayjsInstance.format('YYYY-MM-DD HH:mm:ss')
}

// 计算运行时间:D天HH小时mm分
formatToDate(seconds: number) {
  dayjs.extend(duration) // 依赖 duration 插件,duration 函数才能正常运行
  const dayjsInstance = dayjs.duration(seconds, 'seconds') // 根据秒数计算时长
  return dayjsInstance.format('D天H小时mm分')
}