尽管用户 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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1751 次 |
| 最近记录: |