2016-08-12 13 views
9

मैं एंड्रॉइड डिवाइस में बैटरी चार्जिंग गति का पता कैसे लगा सकता हूं? मैं नीचे कोड का उपयोग कर बैटरी स्थिति का पता लगा सकता हूं। लेकिन गति चार्ज नहीं।बैटरी चार्जिंग गति का परीक्षण कैसे करें?

IntentFilter filter = new IntentFilter(); 
filter.addAction(Intent.ACTION_BATTERY_CHANGED); 
BatteryChangeReceiver receiver = new BatteryChangeReceiver(subscriber); 
registerReceiver(receiver, filter); 


public class BatteryChangeReceiver extends BroadcastReceiver { 

    @Override public void onReceive(Context context, Intent intent) { 
       // here I get all battery status. 
    } 
    } 

मैं भी this, this और this उल्लेख लेकिन नहीं कर सकते चार्ज गति की जांच करने के लिए रास्ता खोजने।

एक ऐप (Ampere) है जो चार्जिंग गति प्रदर्शित करता है। enter image description here enter image description here मैं इसे कैसे प्राप्त कर सकता हूं?

अग्रिम धन्यवाद।

+0

एक समय और चार्ज प्रतिशत संयोजन बनायेगा। – Amy

+0

नहीं, जैसे ही मैं चार्जर से कनेक्ट होता हूं, यह प्रदर्शित होगा। यदि मैं यूएसबी केबल से कनेक्ट करता हूं तो धीमी चार्जिंग प्रदर्शित करता है और अगर दीवार चार्जर और तेज़ चार्जिंग। –

+0

मुझे लगता है कि आप इसे डिवाइस के dmesg लॉग में पा सकते हैं। –

उत्तर

4

BatteryManager का उपयोग करें। यह संपत्ति BATTERY_PROPERTY_CURRENT_AVERAGE प्रदान करता है, जो आपको माइक्रोमैपीर्स में औसत बैटरी चालू करता है। दुर्भाग्यवश, इस अवधि को एकत्रित करने की अवधि अवधि डिवाइस से डिवाइस में भिन्न हो सकती है। ऋणात्मक मूल्यों का मतलब निर्वहन है, सकारात्मक मूल्यों का मतलब है कि फोन चार्ज हो रहा है।

वैकल्पिक रूप से, आप BATTERY_PROPERTY_CURRENT_NOW का उपयोग कर सकते हैं (ऐसा लगता है कि Ampere इस दृष्टिकोण का उपयोग कर रहा है)। यह तात्कालिक बैटरी चालू करता है। यह सटीक नहीं हो सकता है, इसलिए इस संपत्ति को दो बार बुलाएं और औसत की गणना करना एक अच्छा विचार है।

उदाहरण कोड:

BatteryManager batteryManager = (BatteryManager) Context.getSystemService(Context.BATTERY_SERVICE); 
int averageCurrent = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE); 
+0

यह एपीआई 21 में जोड़ा गया है। क्या आप समाधान प्रदान कर सकते हैं जो कम संस्करण में भी काम करता है। –

+0

केवल फ़ोन जिनके पास बैटरी ईंधन गेज है (https://source.android.com/devices/tech/power/device.html) BATTERY_PROPERTY_CURRENT_AVERAGE को वापस रिपोर्ट कर सकते हैं। उदाहरण के लिए, नेक्सस 5 केवल आपको BATTERY_PROPERTY_CAPACITY प्रदान कर सकता है। – Jehy

1

मैं चार्ज गति का पता लगाने के लिए अपने किसी भी तरह से लगता है न: लेकिन आप इसे संशय का विषय है कर सकते हैं: 1) आप

द्वारा चार्ज स्तर (प्रतिशत या संख्या) रिकॉर्ड कर सकते हैं

int level = intent.getIntExtra (बैटरी मैनेजर.EXTRA_LEVEL, 0); बैटरीTxt.setText (स्ट्रिंग.वल्यूओएफ (स्तर) + "%");

2) और फिर कुछ प्रोसेसिंग समय के बाद आप एक ही कोड का उपयोग कर वर्तमान चार्ज स्तर प्राप्त कर सकते हैं। 3) फिर अंतर की गणना करें और फिर आप चार्जिंग गति को जान सकेंगे।

यह सिर्फ यह विचार है कि आप इसे कैसे कार्यान्वित कर सकते हैं।

आशा है कि इससे आपको

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