获取Android小部件的电池电量

时间:2010-09-11 15:39:18

标签: android android-widget battery receiver

我为Android编写了一个小部件,我正试图获得电池电量。 我尝试过使用

Intent batteryIntent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

但我收到错误: “不允许IntentReceiver组件注册接收意图”

为什么呢? ACTION_BATTERY_CHANGED是一个粘性意图,我没有注册接收者(在第一个参数中为null)。

任何解决方法?

感谢。

2 个答案:

答案 0 :(得分:8)

hackbod在评论中给出了解决方案:

“使用getApplicationContext()。registerReciever()”

答案 1 :(得分:3)

嗯......这感觉像个臭虫。他们必须过早地进行is-a - BroadcastRecevier检查。您可能想要创建一个演示该问题的项目,然后将其发布到b.android.com

就解决方法而言:

步骤1:创建IntentService

步骤2:在onHandleIntent()中,您的实际小部件更新是否有效,包括获取电池级别

第3步:onUpdate() AppWidgetProvider startService()只需拨打IntentService上的{{1}}。