0
点赞
收藏
分享

微信扫一扫

QT for android通过其配置文件读取电量


网上找相关资料,但很少,有从这个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();


举报

相关推荐

0 条评论