X

Android 4.4で追加されたパーミッションとDevice Features

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について解説しました。おつかれさまでした。

mhidaka: Software Engineerだよ。DroidKaigi Organizer / Androidと組込とRe:VIEW。techbooster主宰。mhidaka's writings http://booklog.jp/users/mhidaka 技術書典! http://techbookfest.org
Related Post