我为Android编写了一个小部件,我正在尝试获得电池水平。我尝试使用

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

但是我遇到了错误:“不允许intentReceiver组件注册以接收意图”

为什么? action_battery_changed是一个粘性的意图,我不注册接收器(第一个参数中的null)。

有解决方法吗?

谢谢。

有帮助吗?

解决方案

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

“使用getApplicationContext()。registerReciever()”

其他提示

嗯...感觉就像一个错误。他们必须做is-a-BroadcastRecevier 检查得太早。您可能需要创建一个证明问题的项目,然后将其发布到 b.android.com.

就解决方法而言:

步骤#1:创建一个 IntentService

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

步骤#3: onUpdate() 你的 AppWidgetProvider 只是打电话 startService() 在你的 IntentService.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top