ホームアプリの作り方調べ(1) | Androidちんたら開発室

ホームアプリの作り方調べ(1)

前回の日報で触れたホームアプリ作り方を調べてみた


※※以下の内容はシステム異常の危険を伴うので注意すること

実際に確かめてみると以下のような記述が必要

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>


上記の記述がアプリのインテントフィルタにある場合
インテントはHomeボタンの選択肢としてアプリを認識する


Homeボタンを押した場合、選択肢が表示(Homeおよび該当アプリ)される
チェックボックスをチェック後に選択した場合は、以後それがデフォルト設定として用いられる
デフォルト設定の変更は、設定→アプリケーションから変更


※※以下超重要
上記インテントフィルタを安易に実装するのは危険
なぜなら、ホーム機能のまったく実装していないアクティビティをホームと置き換える可能性がある

こうなるとデフォルト設定を変更しようにも、設定画面に遷移できないため

(メニューボタンを押された際の挙動も、ホームアプリに記述されている)
ホーム画面から何も出来ない、元にも戻せないデッドロック状態に陥る場合がある


USBデバッグの場合は、インテントフィルタを元に戻して再度デバッグを開始すれば元に戻せるが
ファイル転送後にローカルで実行してしまった場合などは、戻す方法が思いつかない
最悪、PCからシステム復元しなければいけない可能性もある
マジ怖かったっす


ちなみに、デフォルトHomeからホームアプリを呼び出した場合(デバッグの初回の起動など)は
デフォルトHomeが生きている状態なので、ホームアプリからBackボタンを押すと、デフォルトHomeに戻る


よって、テストアプリだろうと、少なくとも設定画面に遷移できる口を作っておかないと危険と言う訳
たぶんメニュー(設定?)のインテントを使えばいいんだと思うけれども

時間切れにて以降にもちこし