网上找相关资料,但很少,有从这个SYSTEM_POWER_STATUS里获取的方法,但我无法使用,苦寻很久,突然发现原来可以通过安卓本身的系统文件中获取
关键点:在安卓的系统文件中"/sys/class/power_supply/battery/uevent"可以直接读取到电量的值
方法一: 利用QFile,读取完记得关闭该文件
// 读取本地文件
QString file_path = "/sys/class/power_supply/battery/uevent";
//实例QFile
QFile file(file_path);
//判断文件是否存在
if(!file.exists())
{
qDebug() << "[" << file_path << "]:" << QString("该文件不存在!");
return;
}
//存在打开,不存在创建
bool ret = file.open(QIODevice::ReadOnly | QFile::Text);
if (ret == true){
QTextStream in(&file);
QString line = in.readLine();
qDebug() << line;
while (!line.isNull() || !line.isEmpty()){
line = in.readLine();
if (line.indexOf("POWER_SUPPLY_CAPACITY=") == 0){
qDebug() << line;
file.close();
return;
}
}
file.close();
}
方法二:利用 QSettings,代码更简洁,重复读取记得再次读取时clear
QSettings settings("/sys/class/power_supply/battery/uevent", QSettings::IniFormat);
QString m_text;
m_text = settings.value("POWER_SUPPLY_CAPACITY").toString();
qDebug() << m_text;
ui->label_battery->setText("电量:" + m_text + "%");
if (m_text.toInt() <= 20){
ui->label_battery->setStyleSheet("color:rgb(255, 48, 48);");
}else{
ui->label_battery->setStyleSheet("color:rgb(1, 104, 181);");
}
settings.clear();