我目前正在开发一个应用程序使用qt针对运行Ubuntu 14.04平板电脑
由于设备上只有电量不足的指示灯,应用程序会长时间全屏运行,因此我想在应用程序内部显示电池指示灯。 search主要发现旧的结果或调用窗口,android或ios apis。
是否有任何方式使用Qt apis或其他舒适的方式获取有关电池状态的信息?
阅读笔记本电脑当前的电池充电/放电率
有没有一种方法来获取电池信息(状态,插入等),而无需读取Linux上的proc / sys文件?
在Java中获取Windows计费状态
Linux的c + +:apis与/ proc文件?
如何在Windows中访问笔记本电脑的电池温度?
如何以编程方式停止笔记本电脑电池充电
用Python获取电池容量Windows
C在Windows 7下获得电池寿命
即使在Qt中没有这样的API,你也可以找到一个命令行工具(例如upower ),它返回电池状态的详细信息,并使用QProcess从你的Qt应用程序中执行它。 实用程序完成工作后,可以读取其标准输出并解析它以查找所有必要的信息。
例如,在Ubuntu中与电池相关的命令行工具可以参考这个页面 。
即使用户vahanchos的回答对我有帮助,也许是为别人去的方式,我结束了一个不同的解决方案。
在我的情况下,我只编码一个特殊的设备类型和一套已知的开发机器。 因此我只能读取sys/class/power_supply/的相关文件。 我不能保证其他设备将在那里命名他们的文件完全一样。 但这可能是值得的尝试。
#include <QFile> void refreshValues(){ QFile acLine("/sys/class/power_supply/AC/online"); QFile acAdp("/sys/class/power_supply/ADP0/online"); QFile bCap("/sys/class/power_supply/BAT0/capacity"); bool ac = false; int level = 0; if(acLine.exists()){ acLine.open(qiodevice::ReadOnly | qiodevice::Text); if(QString(acLine.readAll()).toInt()){ ac = true; } acLine.close(); }else if(acAdp.exists()){ acAdp.open(qiodevice::ReadOnly | qiodevice::Text); if(QString(acAdp.readAll()).toInt()){ ac = true; } acAdp.close(); } if(bCap.exists()){ bCap.open(qiodevice::ReadOnly | qiodevice::Text); level = QString(bCap.readAll()).toInt(); bCap.close(); } setAcPowerActive(ac); setbatterylevel(level); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。