Android 4.4 KitKatでは、いくつかパーミッションとデバイスのFeatureが追加されました。
新機能に必要なパーミッション追加が主ですがシステム権限向けへの追加パーミッションも多くあります。システム権限向けのパーミッションはアプリからは残念ながら利用できませんが内部構造を知る上でも貴重な情報です。
追加されたパーミッション一覧
android.Manifest.permissionクラスでの追加定数(パーミッション名)を見てみましょう。
App/Sys | パーミッション名 | 説明 |
---|---|---|
App | INSTALL_SHORTCUT | ホーム画面へのショートカット追加許可 |
App | UNINSTALL_SHORTCUT | ホーム画面へのショートカット削除許可 |
App | TRANSMIT_IR | 赤外線通信の許可 |
System | BIND_NFC_SERVICE | HostApduServiceまたはOffHostApduServiceへのバインド許可 |
System | BIND_PRINT_SERVICE | PrintServiceへのバインド許可 |
System | BLUETOOTH_PRIVILEGED | UI表示を行わずにBluetoothペアリング許可 |
System | CAPTURE_AUDIO_OUTPUT | オーディオ出力のキャプチャ許可 |
System | CAPTURE_SECURE_VIDEO_OUTPUT | セキュアなビデオ出力のキャプチャ許可 |
System | CAPTURE_VIDEO_OUTPUT | ビデオ出力のキャプチャ許可 |
System | MANAGE_DOCUMENTS | document pickerへのアクセス許可 |
System | MEDIA_CONTENT_CONTROL | 再生中メディアへのアクセス許可 |
一番左側の項目はAppであればアプリケーションから利用できることを、Systemであればシステム権限(SystemUI)を必要としていることを示します。追加されたパーミッションの多くはシステム権限の見直しや新規追加です。
アプリケーションから利用できるパーミッションはランチャーのホーム画面へのショートカットの作成/削除、赤外線通信の3つです。ホーム画面へのショートカット追加は アプリの機能ごとにショートカットを作る でTechboosterでも紹介しています(2011年からある機能に改めてパーミッションを設けた、という表現が適切でしょう)。
拡張ストレージのアクセス権限ポリシーを変更
Android 4.4からはアプリケーション固有の領域にアクセスする場合において、WRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGEパーミッションを必要としなくなりました。具体的にはgetExternalFilesDir()メソッドで取得できるディレクトリ以下はパーミッションが不要です(今まで前述のパーミッションが必要でした)。
getExternalStoragePublicDirectory()メソッドで取得できるディレクトリはアプリケーション固有ではなくすべてのアプリケーションから共用する領域です。このような領域は拡張ストレージとみなされますので、今まで通りWRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGEパーミッションが必要です。
追加されたデバイスフィーチャー一覧
Device FeatureはGoogle Playでのフィルタリング用(アプリが必要とする機能を持っていないデバイスへのインストールを抑止する)ために利用できます。これらデバイスフィーチャーは開発メーカー側で端末ごと特徴に合わせて適切に設定されています。アプリケーションから指定する場合はAndroidManifest.xmlに
android.content.pm.PackageManagerクラスに追加された定数(デバイスフィーチャー)は次の通りです。
フィーチャー名 | 説明 |
---|---|
FEATURE_CONSUMER_IR | 赤外線通信が可能なデバイス |
FEATURE_DEVICE_ADMIN | デバイス管理者設定が可能 |
FEATURE_NFC_HOST_CARD_EMULATION | NFCカードエミュレーションのサポートが必要 |
FEATURE_SENSOR_STEP_COUNTER | 歩数計に対応したハードウェア |
FEATURE_SENSOR_STEP_DETECTOR | 歩行検出が可能なハードウェア |
Android 4.4で増えた機能が網羅されています。FEATURE_DEVICE_ADMINはなじみのないFeatureですが、これは「管理者によるデバイスポリシーを強制できる」ことを示します。このFeatureを備えたAndroid端末であれば管理者がセキュリティポリシーを設定、運用できます(主にビジネス、企業向け)です。
以上、Android 4.4 KitKatのパーミッションとDevice Featureについて解説しました。おつかれさまでした。