尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

HarmonyOS 5开发从入门到精通(十一):设备能力调用

HarmonyOS 5开发从入门到精通(十一):设备能力调用
📅 发布时间:2026/6/20 2:31:30

HarmonyOS 5开发从入门到精通(十一):设备能力调用

设备能力调用让应用能访问手机的硬件功能,比如获取设备信息、使用传感器、定位位置等。本章介绍如何调用这些设备能力。

一、获取设备信息

1.1 获取基本设备信息

import deviceInfo from '@ohos.deviceInfo';// 获取设备型号
let model = deviceInfo.model;
// 获取厂商
let manufacturer = deviceInfo.manufacturer;
// 获取品牌
let brand = deviceInfo.brand;
// 获取系统语言
let language = deviceInfo.language;

1.2 获取屏幕信息

import display from '@ohos.display';// 获取默认屏幕
let defaultDisplay = await display.getDefaultDisplay();
// 屏幕宽度
let width = defaultDisplay.width;
// 屏幕高度
let height = defaultDisplay.height;
// 屏幕密度
let density = defaultDisplay.densityDPI;

二、传感器使用

2.1 加速度传感器

import sensor from '@ohos.sensor';// 监听加速度变化
sensor.on(sensor.SensorId.ACCELEROMETER, (data) => {console.log(`X: ${data.x}, Y: ${data.y}, Z: ${data.z}`);
});

2.2 光线传感器

// 监听光线强度
sensor.on(sensor.SensorId.LIGHT, (data) => {console.log(`光线强度: ${data.intensity} lux`);
});

2.3 距离传感器

// 监听距离变化
sensor.on(sensor.SensorId.PROXIMITY, (data) => {console.log(`距离: ${data.distance} cm`);
});

三、电池管理

3.1 获取电池状态

import batteryInfo from '@ohos.batteryInfo';// 获取电池电量
let batteryLevel = batteryInfo.batteryLevel;
// 充电状态
let chargingStatus = batteryInfo.chargingStatus;
// 电池健康状态
let healthStatus = batteryInfo.healthStatus;

3.2 监听电池变化

// 监听电量变化
batteryInfo.on('batteryLevel', (level) => {console.log(`电量变化: ${level}%`);
});// 监听充电状态变化
batteryInfo.on('chargingStatus', (status) => {console.log(`充电状态: ${status}`);
});

四、网络状态

4.1 获取网络信息

import connection from '@ohos.net.connection';// 获取网络类型
let netHandle = await connection.getDefaultNet();
let type = netHandle.type; // wifi, cellular等// 检查网络是否可用
let isAvailable = netHandle.isAvailable;

4.2 监听网络变化

// 监听网络连接变化
connection.on('netAvailable', () => {console.log('网络已连接');
});connection.on('netLost', () => {console.log('网络已断开');
});

五、振动反馈

5.1 触发振动

import vibrator from '@ohos.vibrator';// 单次振动
vibrator.vibrate(100); // 振动100ms// 模式振动
vibrator.vibrate([100, 200, 100, 200]); // 间隔振动

六、设备方向

6.1 监听屏幕方向

import window from '@ohos.window';// 获取当前方向
let orientation = window.getLastWindow(getContext()).orientation;// 监听方向变化
window.getLastWindow(getContext()).on('orientationChange', (newOrientation) => {console.log(`方向变为: ${newOrientation}`);
});

七、存储空间

7.1 获取存储信息

import fileio from '@ohos.fileio';// 获取可用存储空间
let stats = await fileio.statfs('/data');
let freeSpace = stats.f_bavail * stats.f_bsize;
let totalSpace = stats.f_blocks * stats.f_bsize;

八、实战案例:设备状态监控

@Component
struct DeviceMonitor {@State batteryLevel: number = 0@State networkType: string = '未知'@State storageFree: string = '0'@State screenWidth: number = 0aboutToAppear() {this.loadDeviceInfo()}async loadDeviceInfo() {// 获取电池信息this.batteryLevel = batteryInfo.batteryLevel// 获取网络信息let net = await connection.getDefaultNet()this.networkType = net.type// 获取屏幕信息let display = await display.getDefaultDisplay()this.screenWidth = display.width// 获取存储信息let stats = await fileio.statfs('/data')let freeMB = (stats.f_bavail * stats.f_bsize) / (1024 * 1024)this.storageFree = freeMB.toFixed(0)}build() {Column({ space: 15 }) {Text('设备状态监控').fontSize(20).fontWeight(FontWeight.Bold)List({ space: 10 }) {ListItem() {Text(`电池电量: ${this.batteryLevel}%`)}ListItem() {Text(`网络类型: ${this.networkType}`)}ListItem() {Text(`屏幕宽度: ${this.screenWidth}px`)}ListItem() {Text(`可用存储: ${this.storageFree}MB`)}}.width('100%').layoutWeight(1)Button('刷新信息').onClick(() => this.loadDeviceInfo()).width(200)}.padding(20)}
}

九、总结

本章学习了HarmonyOS的设备能力调用:

✅ 设备信息 - 获取型号、厂商、屏幕信息

✅ 传感器 - 使用加速度、光线、距离传感器

✅ 电池管理 - 监控电量和充电状态

✅ 网络状态 - 检测网络连接和类型

✅ 振动反馈 - 提供触觉反馈

✅ 设备方向 - 监听屏幕旋转

✅ 存储空间 - 获取可用存储信息

使用注意:

  1. 部分功能需要权限
  2. 及时移除监听避免内存泄漏
  3. 耗电功能要合理使用
  4. 考虑不同设备的兼容性

这些设备能力让应用更智能、更人性化,是提升用户体验的关键技术。

相关新闻

  • 2025年矿山煤矿电力电缆生产厂家推荐top 榜:中压、低压、聚乙烯绝缘电缆推荐(12月更新) - 品牌2026
  • AI Agent开发必看!LangGraph vs 低代码平台:从“拖拽幻象“到“代码真香“,小白也能构建生产级智能系统[特殊字符]
  • 接口测试与常用接口测试工具总结

最新新闻

  • 2026西安2026正规漏水检测维修公司精选口碑榜TOP5权威推荐-精准定位检测漏水点-专业防水补漏堵漏维修、卫生间/厨房/屋顶/天沟/地下室/阳台防水漏水检测维修 - 安佳防水
  • 微信聊天记录永久保存终极指南:如何让珍贵对话永不丢失
  • MC9S12XE GPIO深度解析:从寄存器配置到中断实战
  • 2026襄阳2026正规漏水检测维修公司精选口碑榜TOP5权威推荐-精准定位检测漏水点-专业防水补漏堵漏维修、卫生间/厨房/屋顶/天沟/地下室/阳台防水漏水检测维修 - 安佳防水
  • 5步掌握FitGirl游戏启动器:高效管理压缩游戏的终极工具
  • 2026年西安评价高的玻璃门生产厂家哪家强 - 品牌鉴赏官2026

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号