2015-06-11 8 views
5

मैं वर्तमान में क्यूटी एक गोली लक्ष्यीकरण का उपयोग करने के लिए एक आवेदन के विकास कर रहा हूँ का उपयोग कर Ubuntu 14.04लिनक्स/Ubuntu पर पढ़ना बैटरी स्थिति क्यूटी

चल चूंकि डिवाइस पर केवल एक गरीब बैटरी सूचक और आवेदन लंबे समय के लिए पूर्ण स्क्रीन चलेंगे है , मैं एप्लिकेशन के अंदर एक बैटरी सूचक दिखाना चाहता हूं। एक खोज मुख्य रूप से पुराने परिणाम या विंडोज़, एंड्रॉइड या आईओएस एपीआई को कॉल करती है।

बैटरी स्थिति के बारे में जानकारी प्राप्त करने के लिए केवल क्यूटी एपिस या किसी अन्य आरामदायक तरीके का उपयोग करने का कोई तरीका है?

+0

आप देख सकते हैं कि यह कैसे क्यूटी गतिशीलता में लागू किया गया था: https://github.com/enthought/qt-mobility/blob/master/src/systeminfo/qsystembatteryinfo.cpp – danielfranca

+0

https देखें: // forum.qt.io/topic/18874/qt-c-how-to-check-battery-level-laptop/4। – user1929959

+0

http://askubuntu.com/questions/324222/how-to-check-battery-status-with-the-ubuntu-sdk आज़माएं – nkcode

उत्तर

0

भले ही उपयोगकर्ता 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); 
} 
2

यहां तक ​​कि अगर क्यूटी में ऐसा कोई एपीआई नहीं है, तो आप कमांड लाइन उपयोगिता (उदाहरण के लिए upower) पा सकते हैं जो बैटरी स्थिति के विवरण लौटाता है और इसे QProcess के साथ अपने क्यूटी एप्लिकेशन से निष्पादित करता है। उपयोगिता ने काम पूरा करने के बाद, आप अपने मानक आउटपुट को पढ़ सकते हैं और सभी जरूरी सूचनाओं को ढूंढने के लिए इसे पार्स कर सकते हैं।

उबंटू में बैटरी से संबंधित कमांड लाइन टूल्स के लिए, उदाहरण के लिए, this page देखें।

संबंधित मुद्दे