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。