资讯动态

仓颉语言查询设备电量:ohos.battery_info(BasicServicesKit 电量信息模块)API 详解

发布时间:2026/10/16 5:39:35 来源:尧图企业网站定制
文档知识库教程OpenHarmony【免费下载链接】CangjieCorpus本仓库为仓颉编程语言语料库聚焦 仓颉编程语言 核心知识体系整合官方开发指南、API 文档、典型代码示例及语法规范等多维度资源经结构化处理与专业标注构建为支持 RAG检索增强生成技术 的高质量知识基座适配智能编码助手、学习辅助工具等应用开发需求。 欢迎开发者基于本语料库构建仓颉语言智能应用推动鸿蒙开发生态智能化升级项目地址https://gitcode.com/Cangjie/CangjieCorpus点击查看免费下载本篇技术指南围绕 OpenHarmony 仓颉 SDK 中 BasicServicesKit基础服务套件的ohos.battery_info模块展开完整讲解BatteryInfo类的全部静态属性以及BatteryCapacityLevel、BatteryChargeState、BatteryHealthState、BatteryPluggedType四个电量状态枚举的定义与用法。读完后你将能够直接以仓颉代码查询设备的剩余电量、温度、电压电流、充电状态、健康状态与充电器类型并掌握该模块的系统能力要求、版本前提及常见错误码如 4900101的排查手段。该模块在 Basic Services Kit 的设备管理能力分类中承担电量信息查询职责。从 BasicServicesKit 目录索引 可以看到ohos.battery_info与ohos.device_info设备信息同属设备管理子域Basic Services Kit 简介 也明确将其定位为提供查询电量信息的能力。模块定位与导入方式battery_info模块主要提供电池状态和充放电状态的查询接口。所有接口均以BatteryInfo类的静态属性形式暴露开发者无需实例化对象即可读取当前设备的电量信息。导入模块使用仓颉的 Kit 级导入方式import kit.BasicServicesKit.*示例代码使用说明引自原文档若示例代码首行有// index.cj注释表示该示例可在仓颉模板工程的index.cj文件中编译运行若示例需获取 Context 应用上下文需在仓颉模板工程中的main_ability.cj文件中进行配置上述示例工程及配置模板详见 仓颉示例代码说明。需要说明的是各 Kit 中的仓颉示例并非完整程序而是对应 API 的主要代码仅供开发者参考如需编译运行需将示例拷贝到仓颉模板工程中。模板工程创建后会自动生成index.cj、main_ability.cj、ability_stage.cj三个模板文件在index.cj对应位置添加示例代码即可。详见 仓颉示例代码说明 中的步骤。系统能力与版本前提模块内所有接口BatteryInfo类、全部静态属性、四个枚举及其方法均标注了相同的前提系统能力SystemCapability.PowerManager.BatteryManager.Core起始版本22这意味着应用运行设备必须支持PowerManager.BatteryManager.Core系统能力且使用 OpenHarmony API 12起始版本 22及以上版本的仓颉 SDK 才能调用这些接口。在跨设备部署或条件编译场景中应以该系统能力标识作为能力检测依据。class BatteryInfo电池信息查询类public class BatteryInfo {}BatteryInfo是描述电池信息的类其全部成员均为静态只读属性覆盖电量、温度、电压电流、充电状态、健康状态、充电器类型与电池技术型号七个维度。电量类属性属性类型说明batterySocInt32当前设备剩余电池电量百分比batteryCapacityLevelBatteryCapacityLevel当前设备电池电量的等级public static prop batterySoc: Int32 public static prop batteryCapacityLevel: BatteryCapacityLevelbatterySoc以百分比数值形式给出剩余电量适合做精确展示如电量 78%batteryCapacityLevel则将电量抽象为离散等级满电、高电量、正常、低电量、告警、极低、关电更适合做业务分支判断如低电量省电策略、关电前数据保存避免在应用侧自行维护阈值切分逻辑。注原文档中第一个属性小节的标题写作batteryCapacityLevel但其代码与功能描述实际对应的是batterySoc电池充电状态 SoC单位为百分比。两者均为只读Int32属性本文按代码声明整理特此说明便于读者与官方文档对照。温度、电压、电流类属性属性类型单位说明batteryTemperatureInt320.1 摄氏度当前设备电池的温度voltageInt32微伏当前设备电池的电压nowCurrentInt32-当前设备电池的电流public static prop batteryTemperature: Int32 public static prop voltage: Int32 public static prop nowCurrent: Int32使用这三个属性时务必注意单位换算batteryTemperature返回值为实际温度的 10 倍例如读取到350表示电池温度 35.0 摄氏度voltage以微伏µV为单位例如4150000对应 4.15 V展示为伏特需除以 1 000 000nowCurrent表示电池当前电流可结合pluggedType与chargingStatus判断设备正处于充电还是放电过程。温度、电压、电流数据在电池热管理、充电功耗统计、设备健康度监测等场景下尤为常用。状态类属性属性类型说明chargingStatusBatteryChargeState当前设备电池的充电状态healthStatusBatteryHealthState当前设备电池的健康状态isBatteryPresentBool当前设备是否支持电池或电池是否在位pluggedTypeBatteryPluggedType当前设备连接的充电器类型technologyString当前设备电池的技术型号public static prop chargingStatus: BatteryChargeState public static prop healthStatus: BatteryHealthState public static prop isBatteryPresent: Bool public static prop pluggedType: BatteryPluggedType public static prop technology: String其中isBatteryPresent返回true表示设备支持电池或电池在位返回false表示不支持电池或电池不在位默认值为false。从文档语义看在桌面类、固定供电类等无电池设备上读取其他电量属性之前建议先检查该属性对返回false的情况做降级处理如隐藏电量 UI 或跳过相关逻辑。healthStatus除正常外还定义了低温、过热、过压、僵死等异常状态是构建电池保护逻辑如高温暂停充电提示、低温禁用快充提示的关键依据。enum BatteryCapacityLevel电池电量等级public enum BatteryCapacityLevel : EquatableBatteryCapacityLevel ToString { | LevelFull | LevelHigh | LevelNormal | LevelLow | LevelWarning | LevelCritical | LevelShutdown | ... }功能表示电池电量等级的枚举。父类型EquatableBatteryCapacityLevel与ToString。枚举值含义LevelFull满电量LevelHigh高电量LevelNormal正常电量LevelLow低电量LevelWarning告警电量LevelCritical极低电量LevelShutdown关机电量从枚举定义的结构看电量等级按满电 → 高 → 正常 → 低 → 告警 → 极低 → 关电从高到低递进开发者可以据此实现逐级加强的省电策略或告警提示。该枚举提供三个成员方法public operator func !(other: BatteryCapacityLevel): Bool public operator func (other: BatteryCapacityLevel): Bool public func toString(): String对电池电量等级进行判等如果两个电量等级相同返回true否则返回false!对电池电量等级进行判不等如果两个电量等级不同返回true否则返回falsetoString()返回电池电量等级值对应的字符串表示可直接用于日志打印或界面展示。/!为仓颉的重载运算符operator func参数other为BatteryCapacityLevel类型必填无默认值返回值均为Bool。enum BatteryChargeState电池充电状态public enum BatteryChargeState : EquatableBatteryChargeState ToString { | UnknownChargeState | Enabled | Disabled | Full | ... }功能表示电池充电状态的枚举。父类型EquatableBatteryChargeState与ToString。枚举值含义UnknownChargeState电池充电状态未知Enabled充电使能状态正在充电Disabled停止状态未充电Full已充满状态成员方法与BatteryCapacityLevel一致public operator func !(other: BatteryChargeState): Bool public operator func (other: BatteryChargeState): Bool public func toString(): String对电池充电状态进行判等如果充电状态相同返回true否则返回false!对电池充电状态进行判不等如果充电状态不同返回true否则返回falsetoString()返回电池充电状态值对应的字符串表示。典型业务用法判断chargingStatus BatteryChargeState.Full展示已充满图标判断chargingStatus BatteryChargeState.Enabled时提示充电中UnknownChargeState则提示读取充电状态失败需做容错处理。enum BatteryHealthState电池健康状态public enum BatteryHealthState : EquatableBatteryHealthState ToString { | UnknownHealthState | Good | Overheat | Overvoltage | Cold | Dead | ... }功能表示电池健康状态的枚举。父类型EquatableBatteryHealthState与ToString。枚举值含义UnknownHealthState电池健康状态未知Good正常Overheat过热Overvoltage过压Cold低温Dead僵死状态成员方法同样为、!两个判等运算符与toString()public operator func !(other: BatteryHealthState): Bool public operator func (other: BatteryHealthState): Bool public func toString(): String对电池健康状态进行判等如果健康状态相同返回true否则返回false!对电池健康状态进行判不等如果健康状态不同返回true否则返回falsetoString()返回电池健康状态值对应的字符串表示。健康状态枚举中Good之外的四个异常值覆盖了温度、电压与电池本身三类故障维度应用侧可针对Overheat过热与Cold低温提示用户调整使用环境对Dead僵死等严重状态触发数据保存与退出流程。enum BatteryPluggedType充电器类型public enum BatteryPluggedType : EquatableBatteryPluggedType ToString { | UnknownType | Ac | Usb | Wireless | ... }功能表示连接的充电器类型的枚举。父类型EquatableBatteryPluggedType与ToString。枚举值含义UnknownType未获取到连接充电器类型Ac交流充电器UsbUSB 充电器Wireless无线充电器成员方法与其他三个枚举保持同一模式public operator func !(other: BatteryPluggedType): Bool public operator func (other: BatteryPluggedType): Bool public func toString(): String对充电器类型进行判等如果充电器类型相同返回true否则返回false!对充电器类型进行判不等如果充电器类型不同返回true否则返回falsetoString()返回充电器类型值对应的字符串表示。充电器类型与chargingStatus组合使用价值更高例如接 USB 且EnabledUSB 充电中接Wireless且Full无线充电已充满等组合判断可驱动不同的 UI 提示与充电策略。组合使用示例查询并展示完整电量状态以下示例综合使用BatteryInfo的各静态属性演示一次完整的电量信息读取。示例代码需在仓颉模板工程的index.cj文件中编译运行参见 仓颉示例代码说明// index.cj import kit.BasicServicesKit.* func printBatteryInfo() { // 设备不支持电池或电池不在位时电量相关属性无意义直接返回 if (!BatteryInfo.isBatteryPresent) { print(设备不支持电池或电池不在位) return } // 剩余电量百分比与电量等级 print(剩余电量: BatteryInfo.batterySoc.toString() %) print(电量等级: BatteryInfo.batteryCapacityLevel.toString()) // 温度0.1 摄氏度换算为摄氏度 print(电池温度: (BatteryInfo.batteryTemperature / 10.0).toString() ℃) // 电压微伏换算为伏特 print(电池电压: (BatteryInfo.voltage / 1000000.0).toString() V) print(电池电流: BatteryInfo.nowCurrent.toString()) // 充电状态、健康状态与充电器类型 print(充电状态: BatteryInfo.chargingStatus.toString()) print(健康状态: BatteryInfo.healthStatus.toString()) print(充电器类型: BatteryInfo.pluggedType.toString()) // 业务分支示例低电量 未充电时提示用户 if (BatteryInfo.batteryCapacityLevel BatteryCapacityLevel.LevelWarning || BatteryInfo.batteryCapacityLevel BatteryCapacityLevel.LevelCritical) { if (BatteryInfo.chargingStatus ! BatteryChargeState.Enabled) { print(电量较低请尽快充电) } } }示例体现了三个要点所有接口均为BatteryInfo的静态只读属性直接以类名访问无需构造对象利用枚举的toString()输出可读文本利用重载的/!运算符做状态判断在读取前先检查isBatteryPresent并对温度、电压做单位换算保证展示值正确。常见问题与错误排查电量信息接口依赖系统电源管理服务当系统服务不可用或连接异常时可能返回模块特有的电源管理错误码。系统电源管理错误码 文档定义了如下典型错误码错误码错误信息错误描述4900101Failed to connect to the service.操作失败连接系统服务发生异常可能原因系统服务停止运行系统服务内部通讯发生异常。处理步骤引自 系统电源管理错误码检查系统服务是否正常运行在控制台中输入如下命令查看当前的系统服务列表 hdc shell hidumper -ls查看系统服务列表中是否包含PowerManagerService系统服务。通用错误码的说明可进一步参考 通用错误码说明文档。小结ohos.battery_info模块以BatteryInfo类的静态只读属性为核心提供了从精确数值batterySoc、batteryTemperature、voltage、nowCurrent到语义状态batteryCapacityLevel、chargingStatus、healthStatus、pluggedType、technology的完整电量信息视图四个枚举均实现Equatable与ToString天然适配仓颉的模式匹配与字符串输出。结合SystemCapability.PowerManager.BatteryManager.Core系统能力声明、API 12起始版本 22的版本前提与4900101错误码排查方法即可在仓颉应用内实现健壮、完整的电量监测能力。相关文档ohos.battery_info电量信息原文档Basic ServicesKit 接口目录索引ohos.device_info设备信息系统电源管理错误码仓颉示例代码说明赞分享文档知识库教程OpenHarmony【免费下载链接】CangjieCorpus本仓库为仓颉编程语言语料库聚焦 仓颉编程语言 核心知识体系整合官方开发指南、API 文档、典型代码示例及语法规范等多维度资源经结构化处理与专业标注构建为支持 RAG检索增强生成技术 的高质量知识基座适配智能编码助手、学习辅助工具等应用开发需求。 欢迎开发者基于本语料库构建仓颉语言智能应用推动鸿蒙开发生态智能化升级项目地址https://gitcode.com/Cangjie/CangjieCorpus点击查看免费下载相关推荐仓颉语言 BasicServicesKit 基础服务 API 详解设备信息、电量、设置项、公共事件与后台上传下载仓颉语言 BasicServicesKit 基础服务 API 详解设备信息、电量、设置项、公共事件与后台上传下载 本文以 CangjieCorpus 语料库中文档知识库教程OpenHarmonyRGF 仓颉版 Windows API 常量全景rgf.win_def 变量与常量模块详解RGF 仓颉版 Windows API 常量全景 rgf.win_def 变量与常量模块详解 RGF仓颉 Windows 通用渲染框架在 src/win_图形学桌面应用Next.js 接入 PlanetScale MySQLPrisma 驱动适配器实战拆解附避坑清单Next.js 接入 PlanetScale MySQLPrisma 驱动适配器实战拆解附避坑清单 想在 App Router 里接一个 MySQL 兼容上一篇RuoYi-Vue-Plus 5.3.1版本深度解析企业级开发框架的全面升级下一篇OfficeCLI重新定义AI办公自动化的下一代工具链创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑