システムカメラ

Android 11 以降を搭載したデバイスでは、Android フレームワークはシステムカメラをサポートしています。システムカメラは、android.permission.SYSTEM_CAMERA 権限と通常のカメラ権限を持つプロセスにのみ表示されるカメラデバイスです。Android 11 で導入された android.permission.SYSTEM_CAMERA 権限の保護レベルは 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 テストを実行します。

すべてのカメラ CTS テストは、システム カメラデバイスで実行されます。