AndroidManifest.xml における minSdkVersion や targetSdkVersion の指定

前回Ant を使って、Scala で Android アプリを作成してみた。 - ireizの日記作成したアプリの AndroidManifest.xml では、minSdkVersion や targetSdkVersion で API レベルを指定しなかったが、このことがアプリをインストールする際にアプリに許可する権限と関係あることが分かった。

つまり、これらを指定しないと API レベルはそれぞれデフォルトの1となるが、この時、

  • ストレージ(SDカードのコンテンツを修正/削除する)と
  • 電話/通話(携帯のステータスとIDの読み取り)

の2つについてアプリがアクセスできるよう権限を与えねばならない。しかし、実際は前回のテストアプリはこれらにアクセスはしないし、permission も AndroidManifest.xml で与えていない。

どうやら、minSdkVersion か targetSdkVersion のいずれかを 4(android 1.6) 以上に指定してやると、この2つの権限付与がなくなるようだ。

<uses-sdk android:minSdkVersion="4" />

android 1.6 でセキュリティが強化されたことと関係があるのだろうか。

API レベルに関する詳しい話は、ここSign in - Google Accounts