9

Android用のウィジェットを作成し、バッテリーレベルを取得しようとしています。使ってみました

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

しかし、「IntentReceiverコンポーネントはインテントを受信するために登録できません」というエラーが表示されます。

なんで?ACTION_BATTERY_CHANGEDはスティッキーインテントであり、レシーバーを登録しません(最初のパラメーターがnull)。

回避策はありますか?

ありがとう。

4

2 に答える 2

8

hackbodはコメントで解決策を与えました:

"getApplicationContext()。registerReciever()を使用してください"

于 2010-09-13T07:39:48.620 に答える
3

うーん...それはバグのように感じます。彼らはBroadcastRecevier早すぎるチェックをしているに違いありません。問題を示すプロジェクトを作成し、それをb.android.comに投稿することをお勧めします。

回避策の観点から:

ステップ1:作成するIntentService

ステップ2:onHandleIntent()で、バッテリーレベルの取得など、実際のウィジェットの更新作業を行います

ステップ3:onUpdate()あなたのAppWidgetProviderただの呼び出しstartService()を持っていますIntentService

于 2010-09-11T16:50:53.807 に答える