如何检测电池是否存在?

如何检测电池是否存在?

我正在尝试自动化桌面设置,作为其中的一部分,我想安装一个电池监视器包仅当机器当前已连接电池时(UPS 和其他外部电池不相关)。我怎样才能检测到这一点?

我的笔记本电脑有一个目录/sys/class/power_supply/BAT1,而我的台式机目录中没有任何内容/sys/class/power_supply。这是系统上坚如磐石的指标吗?系统文件系统?这参考没有提到BATn目录;它们可能是特定于供应商的功能吗?

答案1

电池信息的存在/sys/class/power_supply是系统支持电池的可靠指标,并且它是标准的 Linux 功能,但它并不总是被称为相同的东西。你的叫BAT1.我正在看一个叫做battery.此外,并非所有条目/sys/class/power_supply都是电池。

查找与该模式匹配的所有文件/sys/class/power/supply/*/type。如果其中至少有一个包含作品Battery,则有电池。其他可能的值typeMainsUSB,也许更多。

另一件可能的事情是系统接受电池,但电池已被物理移除。在这种情况下,Battery电源仍然会出现。如何检测到这一点可能取决于系统,但尝试读取capacity或执行其他操作,看看是否出现读取错误,这可能表明电池已被取出。

细节:文档/power/power_supply_class.txt

相关内容