9

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

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

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

为什么?ACTION_BATTERY_CHANGED 是一个粘性意图,我没有注册接收器(第一个参数为空)。

任何解决方法?

谢谢。

4

2 回答 2

8

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

“使用 getApplicationContext().registerReciever()”

于 2010-09-13T07:39:48.620 回答
3

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

就解决方法而言:

步骤#1:创建一个IntentService

第 2 步:在onHandleIntent()中,进行实际的小部件更新工作,包括获取电池电量

第 3 步:onUpdate()AppWidgetProviderstartService()IntentService.

于 2010-09-11T16:50:53.807 回答