दिलचस्प पोस्ट
ग्रैडल और बहु-परियोजना संरचना Xcode 7 में ENABLE_BITCODE क्या करता है? सीएसएस में क्या एक क्या करता है? अच्छा डोमेन प्रेरित डिजाइन नमूनों दिनांक स्वरूप को स्ट्रिंग फ़ॉर्मेट में परिवर्तित करें ("yyyyMMdd") Jquery में बंद करने के लिए बाहर मेनू पर क्लिक करें सेलेरी में कार्य स्थिति की जांच कैसे करें? पायथन शब्दकोशों को विलय जावा में अस्थिर और सिंक्रनाइज़ के बीच अंतर jQuery – हैश परिवर्तनीय ईवेंट ऑफस्क्रीन UITableViewCells (आकार गणना के लिए) आकार वर्ग का सम्मान नहीं? प्रतिबिंब के माध्यम से एक वस्तु में फ़ील्ड कैसे प्राप्त करें? JQuery का उपयोग किए बिना किसी तत्व के ऊपरी मान को ऑफसेट () कैसे प्राप्त करूं? अनुकूलन के बजाय आर्गपर्स का उपयोग क्यों करें? स्विफ्ट कोड निष्पादन का प्रवेश बिंदु क्या है?

एंड्रॉइड में बैटरी स्तर और राज्य प्राप्त करें

मैं बैटरी स्तर और राज्य कैसे प्राप्त कर सकता हूं (प्लग इन, डिस्चार्जिंग, चार्जिंग आदि)? मैंने डेवलपर डॉक्स की खोज की और मुझे एक बैटरी प्रबंधक वर्ग मिला। लेकिन इसमें कोई भी विधियां शामिल नहीं हैं, बस स्थिरांक हैं मैं इसका उपयोग कैसे करूं?

Solutions Collecting From Web of "एंड्रॉइड में बैटरी स्तर और राज्य प्राप्त करें"

यहां एक कोड नमूना है जो बताता है कि बैटरी जानकारी कैसे प्राप्त करें: http://www.tutorialforandroid.com/2009/01/getting-battery-information-on-android.html

इसे जमा करने के लिए, ACTION_BATTERY_CHANGED इरादे के लिए एक प्रसारण रिसीवर गतिशील रूप से स्थापित किया गया है, क्योंकि यह स्पष्ट रूप से घोषित घटकों के माध्यम से प्राप्त नहीं किया जा सकता है, केवल Context.registerReceiver() लिए इसके लिए पंजीकरण के द्वारा स्पष्ट रूप से Context.registerReceiver()

 public class Main extends Activity { private TextView batteryTxt; private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context ctxt, Intent intent) { int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); batteryTxt.setText(String.valueOf(level) + "%"); } }; @Override public void onCreate(Bundle b) { super.onCreate(b); setContentView(R.layout.main); batteryTxt = (TextView) this.findViewById(R.id.batteryTxt); this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); } } 

चूंकि एपीआई 21 प्रतिशत के रूप में वर्तमान बैटरी स्तर प्राप्त करने के लिए निम्नलिखित का उपयोग करना संभव है:

 BatteryManager bm = (BatteryManager)getSystemService(BATTERY_SERVICE); int batLevel = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY); 

आधिकारिक एंड्रॉइड डॉक्स के आधार पर, आप इस पद्धति का उपयोग कर सकते हैं हेल्पर या यूटिल वर्ग में वर्तमान बैटरी प्रतिशत प्राप्त करने के लिए:

 public static int getBatteryPercentage(Context context) { IntentFilter iFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); Intent batteryStatus = context.registerReceiver(null, iFilter); int level = batteryStatus != null ? batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) : -1; int scale = batteryStatus != null ? batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1) : -1; float batteryPct = level / (float) scale; return (int) (batteryPct * 100); } 

प्रतिशत का शेष शुल्क लेने के लिए आप इसका उपयोग कर सकते हैं।

 private void batteryLevel() { BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { context.unregisterReceiver(this); int rawlevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); int level = -1; if (rawlevel >= 0 && scale > 0) { level = (rawlevel * 100) / scale; } batterLevel.setText("Battery Level Remaining: " + level + "%"); } }; IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); registerReceiver(batteryLevelReceiver, batteryLevelFilter); } 

कुछ शोध करने के बाद, मुझे बैटरीमैनेजर। EXTRA_LEVEL मिला।

आपको एक वास्तविक ब्रॉडकास्ट रिसीवर को पंजीकृत करने की आवश्यकता नहीं है क्योंकि एंड्रॉइड की बैटरी मैनेजर एक चिपचिपा उद्देश्य का उपयोग कर रहा है:

 IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); Intent batteryStatus = registerReceiver(null, ifilter); int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1); float batteryPct = level / (float)scale; return (int)(batteryPct*100); 

यह आधिकारिक दस्तावेज़ों से https://developer.android.com/training/monitoring-device-state/battery-monitoring.html पर है ।

 private void batteryLevel() { BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { context.unregisterReceiver(this); int rawlevel = intent.getIntExtra("level", -1); int scale = intent.getIntExtra("scale", -1); int level = -1; if (rawlevel >= 0 && scale > 0) { level = (rawlevel * 100) / scale; } mBtn.setText("Battery Level Remaining: " + level + "%"); } }; IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); registerReceiver(batteryLevelReceiver, batteryLevelFilter); }