2011年12月25日日曜日

ホームアプリの作り方

ホームアプリの作り方と言っているが、ADWなどの本格的なホームアプリではなく、「ホームキーから起動できるアプリ」のこと。


ホームキーからアプリを呼出せるようにするのはそんなに難しい話ではなくて、AndroidManifestの<activity>タグに<intent-filter>タグを追加するだけ。
これを書くだけでどんなアプリでもホームキーから呼出せるようになり、ホームキーのデフォルトアプリに設定する事ができる。
<activity
  android:name=".HomeKeyActivity"
  android:label="@string/act_name_home_key_activity" >
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.HOME" />
  </intent-filter>
</activity>
が、これだけだと非常に危険。
最低限、このアプリからAndroidの設定アプリは起動できるようにしておかないといけない。
ホームキーから起動できるという事は端末起動時にこのアプリが起動するということ。
このアプリから他のアプリが起動できないと、このアプリ以外は何も操作できなくなってしまう。
なので、ホームキーに設定できるアプリはランチャー機能が必要なのだけど、それ以上に必要なのはAndroidの設定アプリを起動できるということ。ランチャー機能を入れていても、このアプリにバグがあって何もできなくなってしまったらどうしようもないしね。設定アプリさえ起動できればこのアプリをアンインストールしたり、デフォルトホームの設定を解除することができる。
Androidの設定アプリは以下のように起動することができる。
これをメニューか何かに入れておけばOK。
public void launchAndroidSettings() {
  Intent intent =  new Intent()
    .setAction(android.provider.Settings.ACTION_SETTINGS)
    .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
  startActivity(intent);
}
※「最低限」と書いているけれど、Android4.0ではステータスバーから設定アプリを起動する事ができるので、絶対に必要という訳ではない。(3.0でもおそらく大丈夫)

0 件のコメント:

コメントを投稿