[android-group-japan: 3819] AndroidManifest.xml の BroadcastReceiver の定義と挙動について

956 views
Skip to first unread message

Katz

unread,
Apr 17, 2010, 10:54:57 AM4/17/10
to 日本Androidの会
こんにちわ。 Katz@newbieです。

AppWidget で信号強度やバッテリー残量などを表示させるにはどうするのか調べています。
SDK のサンプルを参考に、
AndroidManifest.xmlファイルに BroadcastReceiver の継承したサブクラスを定義し、
intent-filter には ACTION_BATTERY_CHANGED を追記。

ExampleBroadcastReceiverクラスには、onReceive()メソッドで、
action の内容が Intent.ACTION_BATTERY_CHANGED である場合に、バッテリーステータスを取得させています。

なのですが、、、
ログを見る限り、BroadcastReceiverが動いていません。
telnet でバッテリーステータスを変更するコマンドを送っても、何も反応しません。

AppWidget で BroadcastReceiver 扱う、AndroidManifest.xmlにBroadcastReceiver
を定義する場合、
何かしなければならないことがあるのでしょうか?

アドバイスを頂ければ助かります。

■AndroidManifest.xmlファイル
<application android:icon="@drawable/icon" android:label="@string/
app_name">

<receiver android:name=".ExampleBroadcastReceiver"
android:enabled="true">
<intent-filter>
<action android:name="android.intent.ACTION_TIMEZONE_CHANGED" />
<action android:name="android.intent.ACTION_TIME" />
<!-- ADD
________________________________________________________________ -->
<action android:name="android.intent.action.BATTERY_CHANGED" />
<!--
_____________________________________________________________________
-->
</intent-filter>
</receiver>

</application>

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。

飯塚康至(エイシーエル)

unread,
Apr 17, 2010, 7:19:04 PM4/17/10
to 日本Androidの会
こんにちは、飯塚です。前に似たようなスレッドがありました。ご参考ください。
http://groups.google.co.jp/group/android-group-japan/browse_thread/thread/a07007f0d0a8e6f9

Katz

unread,
Apr 19, 2010, 11:02:27 AM4/19/10
to 日本Androidの会
こんにちわ。 Katz@newbieです。

返信が遅くなりまして申し訳ありません。

ありがとうございます。動作させることが出来ました。

・AndroidManifest.xmlファイル では BATTERY_CHANGED は受け取れない。
・BOOT_COMPLETEDを受け取るBroadcastReceiverを定義
・BroadcastReceiverで、Serviceを開始させる。
・onStartメソッドで、PhoneStateListenerやBATTERY_CHANGEDを受け取るBroadcastReceiverを
実行する。


AppWidgetをHOME画面に貼り付けたときにも実行させたいので、
AppWidgetのonEnabledメソッドでも、Serviceを開始させてみました。

この場合、Serviceが2重起動することはないのでしょうか?
Serviceがスタートされているかを確認する方法はあるのでしょうか?

ServiceのonStartメソッドで、BroadcastReceiverを registerReceiver してますが、
unregisterReceiverするタイミングは、onDestroyメソッド での実行が適切ですか?

重ね重ね申し訳ありませんが、
アドバイスを頂ければ助かります。
Reply all
Reply to author
Forward
Message has been deleted
0 new messages