का उपयोग कर केवल एक बार बैटरी स्तर प्राप्त करें मैंने वेब पर खोज की है और मेरे प्रश्न का उत्तर नहीं मिला। मेरी समस्या बैटरी स्तर की जानकारी केवल एक बार प्राप्त करना है, उदाहरण के लिए। फ़ंक्शन getBatteryLevel()
पर कॉल करना। ऐसे समाधान हैं जिन्हें BroadcastReceiver
का उपयोग करके कार्यान्वित किया गया है, लेकिन जैसा कि मुझे पता है कि बैटरी स्तर की परिवर्तन घटना पर हर बार इसे कॉल किया जाएगा। कृपया, मुझे बताएं कि मैं केवल एक बार यह जानकारी कैसे प्राप्त कर सकता हूं?एंड्रॉइड एसडीके
उत्तर
Intent.ACTION_BATTERY_CHANGED
प्रसारण "चिपचिपा प्रसारण" के रूप में जाना जाता है। चूंकि यह चिपचिपा है, इसलिए आप ब्रॉडकास्ट के लिए एक नल रिसीवर के साथ पंजीकरण कर सकते हैं जो आपको registerReceiver
पर कॉल करते समय केवल बैटरी स्तर एक प्राप्त करेगा।
एक समारोह अद्यतन प्राप्त कुछ इस तरह दिखेगा बिना बैटरी स्तर प्राप्त करने के लिए:
public float getBatteryLevel() {
Intent batteryIntent = registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
// Error checking that probably isn't needed but I added just in case.
if(level == -1 || scale == -1) {
return 50.0f;
}
return ((float)level/(float)scale) * 100.0f;
}
अधिक डेटा इस स्टिकी प्रसारण से खींचा जा सकता है। batteryIntent
लौटाकर आप BatteryManager
कक्षा में उल्लिखित अन्य एक्स्ट्रा कलाकारों तक पहुंच सकते हैं।
इस विधि को अब रिसीवर (उदा। विजेट) से जोड़ने के लिए नहीं कहा जा सकता है। क्या आप बैटरी स्तर प्राप्त करने के किसी भी अन्य तरीके से जानते हैं जिसे विजेट की ऑनअपडेट() विधि से किया जा सकता है? –
यदि आप इसे विजेट से कर रहे हैं, तो आपको 'रजिस्टर रिसीवर' को कॉल करने की आवश्यकता होगी: 'getAplicationContext()। रजिस्टर रीसीवर (...)' इसके लिए काम करने के लिए। – MCeley
मेरे पास एक संदर्भ है और इसे कॉल कर सकते हैं, लेकिन कॉलर को रिसीवर के भीतर से अनुमति नहीं दी जाती है, इसे पहले पैरामीटर "रिसीवर" के रूप में पास या शून्य कर दिया जाता है। लॉग संदेश बहुत स्पष्ट है कि आप एक रिसीवर के भीतर से कॉल नहीं कर सकते हैं। –
- 1. एंड्रॉइड एसडीके
- 2. एंड्रॉइड एसडीके
- 3. एंड्रॉइड एसडीके
- 4. एंड्रॉइड एसडीके
- 5. एंड्रॉइड-एसडीके
- 6. एंड्रॉइड एसडीके
- 7. एंड्रॉइड एसडीके
- 8. एंड्रॉइड एसडीके
- 9. एंड्रॉइड एसडीके
- 10. एंड्रॉइड एसडीके
- 11. एंड्रॉइड एसडीके
- 12. एंड्रॉइड एसडीके
- 13. एंड्रॉइड: एंड्रॉइड एसडीके उपकरण
- 14. एंड्रॉइड स्टूडियो - एंड्रॉइड एसडीके
- 15. एंड्रॉइड बनाम एंड्रॉइड-एसडीके-मैक_86
- 16. एंड्रॉइड एसडीके प्रबंधक नवीनतम एंड्रॉइड एसडीके प्लेटफ़ॉर्म (एपीआई 17)
- 17. एंड्रॉइड फेसबुक एसडीके
- 18. विंडोज़ - एंड्रॉइड एसडीके मैनेजर
- 19. फेसबुक एसडीके एंड्रॉइड
- 20. मौजूदा एंड्रॉइड एसडीके
- 21. दोहरी सिम एंड्रॉइड एसडीके
- 22. एंड्रॉइड एसडीके एमएमएस
- 23. एंड्रॉइड एसडीके स्रोत कोड
- 24. एंड्रॉइड गेम्स डेवलपमेंट एसडीके?
- 25. एंड्रॉइड फेसबुक 3.0 एसडीके
- 26. एंड्रॉइड एसडीके 23
- 27. त्रुटि एंड्रॉइड एसडीके
- 28. एंड्रॉइड फेसबुक एसडीके 3.0
- 29. एंड्रॉइड एसडीके 2.37
- 30. हमारे एंड्रॉइड एसडीके
'ब्रॉडकास्ट रिसीवर' का उपयोग करें और फिर एक बार जब आप रिसीवर को अनियंत्रित कर लें तो एक बार मूल्य प्राप्त हो जाए। – TronicZomB