-1

マニフェストに BroadcastReceiver を登録しようとしていますが、登録できません。手で xml を書き込もうとした (そして失敗した) 後、Eclipse のツールをクリックして、次のように Eclipse の GUI から受信機を追加しました (手でコードを書きませんでした)。

<receiver android:name="MyReceiver" android:enabled="true">
    <intent-filter>
        <action android:name="android.intent.action.BATTERY_CHANGED"/>
    </intent-filter>
</receiver>

私がやろうとしているのは、システムが送信するすべての BATTERY_CHANGED インテントをキャッチすることです。しかし、それは単に受信を開始しません。

システムをインスタンス化し、このレシーバーを動作させるために、マニフェスト/レシーバー/アクティビティ コードに何かを追加する必要がありますか?

registerReceiver()このレシーバーをアクティビティとは別に実行したいので、関数を使用したくありません。

4

1 に答える 1

1

ドキュメントには、マニフェストに登録ACTION_BATTERY_CHANGED できないと記載されています。Java コード内の有効なコンテキストからこれを登録する必要があります。

幸いなことに、コンテキストはアクティビティだけでなく、必要に応じてサービスまたは有効なコンテキストがある他の場所で registerReceiver() を使用できます。

于 2012-08-04T17:07:27.160 に答える