Android 11以降を実行しているデバイスでは、Androidフレームワークはシステムカメラをサポートします。システムカメラは、 android.permission.SYSTEM_CAMERA
権限と通常のカメラ権限を持つプロセスにのみ表示されるカメラデバイスです。 Android 11で導入されたandroid.permission.SYSTEM_CAMERA
権限には、 system|signature
保護レベルがありsystem|signature
。つまり、システムパーティションにインストールされているアプリ、またはシステムと同じ証明書で署名されているアプリのみにこの権限を付与できます。サードパーティの公開アプリはシステムカメラにアクセスできません。
システムカメラは、カメラへのアクセスを必要とする機能を実装したいが、特権アプリまたはシステムアプリに制限されているデバイスメーカーにとって便利です。
付与されているシステムのアプリなのでandroid.permission.SYSTEM_CAMERA
権限も持っている必要がありますandroid.permission.CAMERA
許可を、ユーザーが通常の取消しを選択することができますCAMERA
デバイス上でカメラにアクセスすることから、このようなアプリを防止するための権限を。
実装
特定のカメラデバイスをシステムカメラにするには、カメラHALが機能リストでANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA
をアドバタイズする必要があります。
システムカメラにアクセスできるアプリを作成するには、アプリをデバイス固有のprivapp-permissions.xml
ファイルにホワイトリストに登録する必要があります。このファイルには、 android.permission.SYSTEM_CAMERA
権限を付与する必要があるアプリが指定されています。
検証
デバイス上のシステムカメラがパブリックアプリによって検出されないことを確認するには、 android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery
テストを実行します。
すべてのカメラCTSテストは、システムカメラデバイスで実行されます。