मैं http://developer.android.com/training/monitoring-device-state/battery-monitoring.htmlजब बैटरी स्तर निर्धारित करने के लिए
पर अपने आवेदन दिशा निर्देशों का पालन करने से बैटरी जानकारी प्राप्त करने के लिए कोशिश कर रहा हूँ इस विधि है की कोशिश कर रहा "IntentReceiver घटकों उद्देश्य प्राप्त करने के लिए रजिस्टर करने के लिए अनुमति नहीं है" की जांच करने के साथ आया था बैटरी स्तर:
public void sendBatteryInfoMessage(){
IntentFilter iFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = c.registerReceiver(null, iFilter);
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL;
int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean isUsbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean isAcCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
int batteryLevel = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float batteryPct = batteryLevel/(float) scale;
}
c
पहले कक्षा में Context
वस्तु के रूप में आरंभ नहीं हो जाता।
यह मैं
07-24 18:11:23.445 634-634/wifi.myapp.sudara.lk.sudara_app W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x40028890)
07-24 18:11:23.485 634-634/wifi.myapp.sudara.lk.sudara_app E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start receiver wifi.myapp.sudara.lk.sudara_app.SmsActivity: android.content.ReceiverCallNotAllowedException: IntentReceiver components are not allowed to register to receive intents
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2821)
at android.app.ActivityThread.access$3200(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2083)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.ReceiverCallNotAllowedException: IntentReceiver components are not allowed to register to receive intents
at android.app.ReceiverRestrictedContext.registerReceiver(ContextImpl.java:138)
at android.app.ReceiverRestrictedContext.registerReceiver(ContextImpl.java:132)
at wifi.myapp.sudara.lk.sudara_app.BatteryInfo.sendBatteryInfoMessage(BatteryInfo.java:25)
at wifi.myapp.sudara.lk.sudara_app.SmsActivity.onReceive(SmsActivity.java:53)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2810)
at android.app.ActivityThread.access$3200(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2083)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
हो रही है क्या मैं पता करने की जरूरत IntentReceiver components are not allowed to register to receive intents
का अर्थ और कैसे पर आने के लिए त्रुटि संदेश है।
c.registerReceiver(null, iFilter)
उपयोग:
आप के बजाय
यदि मेरे रिसीवर AndroidManifest में पंजीकृत हैं तो क्या होगा? –
@ इगोरगानापोलस्की: मुझे पता नहीं है कि आप मेनिफेस्ट में पंजीकृत रिसीवर के लिए वह त्रुटि प्राप्त कर सकते हैं। – CommonsWare
@ कॉमन्सवेयर मैं इस समाधान को नियोजित करते समय एंड्रॉइड संस्करण 4.1.2 और इससे भी कम त्रुटि में देख रहा हूं। रिसीवर को पंजीकृत करने से पहले मैं संदर्भ संदर्भ में संदर्भ को परिवर्तित कर रहा हूं, भले ही यह कैसे हो रहा है के बारे में कोई विचार? – neonDion