BroadcastReceiverはマニフェストとonReceiveのオーバーライドだけでは無理?

閲覧: 3,078 回
最初の未読メッセージにスキップ

misa335

未読、
2009/08/30 21:26:302009/08/30
To: 日本Androidの会
日高と申します。

BroadcastReceiverを利用したアプリをテスト作成しているのですが、
intentが受け取れません。

最終的にはSCREEN_ONの時点で何らかの動作をするアプリを作成したいのですが、
それ以前の箇所で詰まっている為前回こちらで投稿のあった、BOOT_COMPLETEDでテストプログラムを作成しています。

onReceiveには、intentを受け取った時にactionの内容をログ出力するのみの内容を記述しています。

マニフェストファイルの一部はこんな感じです。


<application android:icon="@drawable/icon" android:label="@string/
app_name" android:debuggable="true">
<receiver android:name="TestService">
<intent-filter>
<action
android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED" />


インストールして試してみたのですが、ログが全く出ないのでonReceiveが呼び出されていない事は明白です。

何か足りない事などございましたら、ご教授願えればと思います。。

Keiji Ariyama

未読、
2009/08/31 0:58:252009/08/31
To: android-g...@googlegroups.com
有山@大阪です。

> 最終的にはSCREEN_ONの時点で何らかの動作をするアプリを作成したいのですが、
> それ以前の箇所で詰まっている為前回こちらで投稿のあった、BOOT_COMPLETED
でテストプログラムを作成しています。
 拝見した中では、問題なく動作しそうなんですが・・・。

 BOOT_COMPLETEDだと毎回テストの際に再起動しないといけないので、試しに、

<intent-filter>
<action android:name="android.intent.action.CONFIGURATION_CHANGED" />
</intent-filter>

 として見てはどうでしょうか。上記は設定の変更、例えば言語設定を変更した
場合などを捉えてonReceive()が走るので、いちいち再起動しなくて良いので、
分かり易いかと思います。

/*********************************************
有限会社シーリス
代表 有山 圭二
@Address
〒530-0044
大阪市北区東天満二丁目2番5号
第2新興ビル 601
@Web http://www.c-lis.co.jp
*********************************************/

hidaka

未読、
2009/08/31 1:28:462009/08/31
To: 日本Androidの会
返答ありがとうございます。

ソースはいじらずに、何度か再起動していた所何故かログが取れました・・・(謎)
なんとも不完全燃焼な解決です・・

その後CONFIGURATION_CHANGEDに変更してみた所、
またしてもログが取れないという状況です。

最終的にはSCREEN_ONのログが欲しいので、すっとばしてそちらも試してみたのですが・・・
設定しなければいけないパーミッションが存在するのでしょうか?



On 8月31日, 午後1:58, Keiji Ariyama <keiji_ariy...@c-lis.co.jp> wrote:
> 有山@大阪です。
>
> > 最終的にはSCREEN_ONの時点で何らかの動作をするアプリを作成したいのですが、
> > それ以前の箇所で詰まっている為前回こちらで投稿のあった、BOOT_COMPLETED
>
> でテストプログラムを作成しています。
>  拝見した中では、問題なく動作しそうなんですが・・・。
>
>  BOOT_COMPLETEDだと毎回テストの際に再起動しないといけないので、試しに、
>
> <intent-filter>
> <action android:name="android.intent.action.CONFIGURATION_CHANGED" />
> </intent-filter>
>
>  として見てはどうでしょうか。上記は設定の変更、例えば言語設定を変更した
> 場合などを捉えてonReceive()が走るので、いちいち再起動しなくて良いので、
> 分かり易いかと思います。
>
> /*********************************************
> 有限会社シーリス
> 代表 有山 圭二
> @Address
> 〒530-0044
> 大阪市北区東天満二丁目2番5号
> 第2新興ビル 601
> @Webhttp://www.c-lis.co.jp
> *********************************************/
>
>
>
> misa335 wrote:
> > 日高と申します。
>
> > BroadcastReceiverを利用したアプリをテスト作成しているのですが、
> > intentが受け取れません。
>
> > 最終的にはSCREEN_ONの時点で何らかの動作をするアプリを作成したいのですが、
> > それ以前の箇所で詰まっている為前回こちらで投稿のあった、BOOT_COMPLETEDでテストプログラムを作成しています。
>
> > onReceiveには、intentを受け取った時にactionの内容をログ出力するのみの内容を記述しています。
>
> > マニフェストファイルの一部はこんな感じです。
>
> > <application android:icon="@drawable/icon" android:label="@string/
> > app_name" android:debuggable="true">
> > <receiver android:name="TestService">
> > <intent-filter>
> > <action
> > android:name="android.intent.action.BOOT_COMPLETED" />
> > </intent-filter>
> > </receiver>
> > </application>
> > <uses-permission
> > android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
>
> > インストールして試してみたのですが、ログが全く出ないのでonReceiveが呼び出されていない事は明白です。
>
> > 何か足りない事などございましたら、ご教授願えればと思います。。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

EGAWA Takashi

未読、
2009/08/31 1:44:592009/08/31
To: android-g...@googlegroups.com
日高さん

江川と申します。
試してないですが、Android Developersというオフィシャルな
groupsで同じポストがありました。

http://groups.google.co.jp/group/android-developers/browse_thread/thread/40753eb1b312f4ab

どうもACTION_SCREEN_ONは、AndroidManifest.xmlでは受け取れず、
コーディングしないとダメのようです。Peliがポストされたコードを抜粋して
貼っておきます。一度お試し下さい。

BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.v(TAG, "onReceive()");
}
};
@Override
protected void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter
(Intent.ACTION_SCREEN_ON);
registerReceiver(mReceiver, filter);
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(mReceiver);
}

以上です。

------------------------------------------
EGAWA Takashi



2009年8月31日14:28 に hidaka<misako...@comthink.co.jp> さんは書きました:
全員に返信
投稿者に返信
転送
新着メール 0 件