3.2(Honycomb)環境での電源ONによるサービスアプリ起動について

1,288 views
Skip to first unread message

kidogami

unread,
Oct 13, 2011, 10:06:00 AM10/13/11
to 日本Androidの会
木戸上といいます。
Android3.2上で、電源ONをキーとして立ち上がるサービスアプリを作成していますが、
どうしてもうまくいきません。有識者のかたアドバイスいただけると幸いです。
■成功していること
 ginger環境での電源ONでのサービス起動
電源ON時のブロードキャスト(android.intent.action.BOOT_COMPLETED)が
Android OSから発行されたのをReceiveして、サービスを起動している。

■失敗していること。
 同アプリケーションをAndroid3.2上で動かすと電源ONを拾えない
 ためサービスが起動できない

■試していること
 ginger versionでのAVDでは成功する。
 Android3.1以降のAVDでは失敗する。
 adb shellから、amコマンドでandroid.intent.action.BOOT_COMPLETEDを送信してテストしている。
 API versionを13にした、同機能アプリを作成し、評価したが電源ON拾えず。
 Android.Manifestファイルが怪しいかと色々見ているが問題点見つけられず。

こんな観点での確認はどうかなど、アドバイスいただけると大変助かります。
よろしくお願いいたします。


Nikolay Elenkov

unread,
Oct 14, 2011, 2:20:28 AM10/14/11
to android-g...@googlegroups.com
2011/10/13 kidogami <kido...@zc5.so-net.ne.jp>:

> 木戸上といいます。
> Android3.2上で、電源ONをキーとして立ち上がるサービスアプリを作成していますが、
> どうしてもうまくいきません。有識者のかたアドバイスいただけると幸いです。

以下のブログに詳細に書いてありますが、3.1以降は、ユーザがアプリを少なくとも
1回起動しないと、broadcastなどは受信できないそうです。適当なActivityを
追加して、1回 Launcherから起動すれば、次のリブートで正常に動くはずです。
(自分は試していないですが)

http://commonsware.com/blog/2011/07/13/boot-completed-regression-confirmed.html

kidogami

unread,
Oct 14, 2011, 5:44:32 AM10/14/11
to 日本Androidの会
Nikolay Elenkov様
木戸上といいます。情報ありがとうございました。
引き続き調査したところ、回避策としてはBroadcast送信タイミングに
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
を付加することより、stopped状態にあるアプリも起こせるようです。
しかしながら、
android.intent.action.BOOT_COMPLETEDにこのフラグをつけることは、
Android OSに手を加えなければならず、かつセキュリティを下げることになるため
選択は難しいと考えています。

なんとか回避策捜します・・・
Reply all
Reply to author
Forward
0 new messages